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).
quinta-feira, 1 de julho de 2010
Assinar:
Postar comentários (Atom)
Bom dia alexandre,
ResponderExcluirEstou com um problema no dynamicUpdate, hj no meu ambiente de desenvolvimento utilizando dynamicUpdate=true obtinho sucesso no update setando apenas o valor alterado no momento da atualização.
A mesma classe em produção esta se comportando diferente, monta o update com varios atributos que não foi informado.
Notei q na anotação da classe existe uma quebra de linha isto poderia estar gerando não habilitar este recurso?
Ambiente desenvolvimento: weblogic 10.3 windows
Ambiente produção: weblogic 10.3 unix
Segue codigo:
* @hibernate.class table = "LOG_PROCESSO" dynamic-insert = "true" dynamic-update =
* "true" lazy="true" schema="netmed"
Att,
Wesley Santos
Olá,
ResponderExcluirNão acredito que o problema esteja ocorrendo devido a quebra de linha. Mas não custa testar, tente deixar tudo em uma única linha.