Olá Pessoa,
Estou trabalhando com JPA + Hibernate e o Jackson para serializar e deserializar objetos JSON, bom quase tudo funciona… com exceção que o hibernate fica fazendo UPDATE sempre que eu faço um merge, ou seja, se eu não fiz nenhuma alteração no registro ele deveria apenas fazer um select de verificação e mais nada, concordam?
Se eu instancio um objeto preencho os atributos e mando fazer o merge ele se comporta perfeito, mas quando eu recebo um objeto em JSON deserializado, ele faz o update sempre… mesmo sem alterar nada, alguém já passou por isso?
Abs.
O que diz que ele deveria apenas fazer um select quando você dá um merge sem alteração?
Quando o ID do registro já existe ele faz um SELECT para comparar o objeto e saber se ele precisa fazer o UPDATE ou não, sacou?
O problema é que ele faz o SELECT e faz o UPDATE sempre, como se o registro tivesse sido alterado (mas não foi).
Sim, eu sei. Mas aonde você viu que esse não é o comportamento especificado?
Tente usar a anotação de dynamicUpdate e teste
@org.hibernate.annotations.Entity(dynamicUpdate=true)
Ola duardor…
Cara, vc foi mais do que preciso… foi objetivo!!! Com poucas palavras e acertou na mosca!
Com essa dica, consegui ver o campo que estava gerando o update e tomar ação.
Muitos obrigado mesmo!!!