quinta-feira, 1 de julho de 2010

Hibernate: dynamicUpdate e dynamicInsert

O que é?

Com o Hibernate é possível detectar as propriedades que foram modificadas, e gerar uma declaração SQL UPDATE/INSERT somente com essas colunas. Com esse recurso você pode ter algum ganho de performance. Por padrão esse recurso vem desabilitado, com isso, o Hibernate inclui “todas” as propriedades definidas na sua classe em uma SQL UPDATE/INSERT.

Configurando!

Para ativar o recurso de geração dinâmica de SQL basta adicionar o mapeamento (dynamicUpdate=true e/ou dynamicInsert=true) no mapeamento de sua classe:

@Entity
@org.hibernate.annotations.Entity(dynamicUpdate=true, dynamicInsert=true)
public class Moeda implements Serializable {

Quando utilizar esse recurso?

Utilize esse recurso em tabelas com grande quantidade de colunas (ex: mais de 50), ou em tabelas com grandes quantidades de dados (ex: campos Blob de texto/imagem).