Quando faço uma ALTERAÇÃO em um pojo e passo pro Hibernate persistir, ele gera um update que contém todos os campos. Alguém sabe como fazer que ele gere um update apenas com os campos que foram alterados?
Para deixar o problema mais claro, vou colocar um exemplo:
Quando executo o “merge” gostaria que o sql gerado fosse “UPDATE TESTE SET DESCRICAO = ‘nova descrição’ WHERE ID = 1”, no entanto, é gerado um update em todos os campos, gerando um tráfego desnecessário na rede e um certo overhead no banco de dados.
Tendo em vista que aplicação que eu estou desenvolvendo trabalha com um volume de dados muito grande e muitos usuários fazendo alterações simultaneamente, isto realmente vai fazer uma grande diferença.
JavaBean… ProptyChangeListner … ai a partir dai, vc sabe só o q mudou, e pode alterar só oq ker, porem!!! se vai conseguir fazer isso via hibernate, é outros 500… mas a ideia ta ai
E
edumrf
Lavieri:
Ideia ?? sim tenho
JavaBean… ProptyChangeListner … ai a partir dai, vc sabe só o q mudou, e pode alterar só oq ker, porem!!! se vai conseguir fazer isso via hibernate, é outros 500… mas a ideia ta ai
Cara, obrigado pela dica, consegui resolver outro problema com o sistema de auditoria que eu tinha usando isso, mas pra fazer o update diferencial usando o hibernate ainda to boiando, principalmente porque o site do hibernate ta fora do ar (junto com o fórum).
Vou continuar pesquisando, quando eu conseguir implementar monto um tutorial pra colocar no fórum.
TFAGUNDES6
Pode ser besteira oq eu estou falando, mais é uma ideia…
Quando vc monta um form vc não tem q buscar os dados
do objeto no banco e jogar na sessão !!(não sei se é assim q tu trabalha)
se for assim, e só comparar os dados da sessão antiga com os dados do form.
Sei tem algumas formas de fazer na unha !!!
Abraços…
E
edumrf
TFAGUNDES6:
Pode ser besteira oq eu estou falando, mais é uma ideia…
Quando vc monta um form vc não tem q buscar os dados
do objeto no banco e jogar na sessão !!(não sei se é assim q tu trabalha)
se for assim, e só comparar os dados da sessão antiga com os dados do form.
Sei tem algumas formas de fazer na unha !!!
Abraços…
Mas como eu iria conseguir fazer o update diferencial dessa forma? lembrando que eu não posso abrir mão do hibernate…
TFAGUNDES6
Esquece o Hibernate…
Pra mim ele só trabalha com o Bd…
Faz os procesos para verificar se foi alterado
na unha e depois popula o objeto com os campos
salvos e manda o Hibernate salvar…
Bom dai vai variar da maneira de como tu trabalha…
Dependendo a gente não vai se entender mesmo!!rsrsr
Abraços…
E
edumrf
TFAGUNDES6:
Esquece o Hibernate…
Pra mim ele só trabalha com o Bd…
Faz os procesos para verificar se foi alterado
na unha e depois popula o objeto com os campos
salvos e manda o Hibernate salvar…
Bom dai vai variar da maneira de como tu trabalha…
Dependendo a gente não vai se entender mesmo!!rsrsr
Abraços…
Cara, obrigado pela dica, mas não dá pra usar dessa forma, porque eu estou trabalhando em um framework pra integrar o extjs, gwt e o hibernate, por isso tem que ser uma solução genérica, de preferência usando somente JPA.
Abraço
TFAGUNDES6
Hum…Entendi
cara fiz uns teste aqui com ExtJs mais apanhei muito com esse cara
Bom aproveitando, uma duvida que eu tinha do Ext e postei no forum
mas ninguém respondeu…rsrs…Tu sabe com integerar componentes ??
Tipo eu tenho no meu layout nort um botão e gostaria de q quando eu
clicar no botão ele abrir uma aba com qualquer componente no center !!
Se tu tiver algum exemplo, eu agradeço…
Outra pergunta, é se tu trabalha a bastante tempo com ExtJs e gwt e se
trabalha é uma boa sair de struts ou jsf para isso ??
Abraços cara, valeu !!
Y
YvesCavalcanti
Aí pessoal aproveitando que vcs estão falando hibernate e gwt eu posso usar anotações do hibernate com gwt ou tenho de usar só o arquivo xml?
valew
B
bKn
Existe a propriedade dynamic-update no hibernate, que faz justamente o que você quer.
YvesCavalcanti:
Aí pessoal aproveitando que vcs estão falando hibernate e gwt eu posso usar anotações do hibernate com gwt ou tenho de usar só o arquivo xml?
valew
Sim, pode. Só não sequestre o tópico, crie um novo para suas dúvidas.
Y
YvesCavalcanti
Ok obrigado pela resposta, e desculpa pelo mal jeito, tomarei cuidado em não desviar o tópico.
valew