| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2005 15:33:36
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
Nao achei solucao mesmo. Tentei todos os tipos de locking etc e tal.
Vou tentar denovo outro dia, as vezes da alguma ideia genial
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2005 16:10:15
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
hehe que droga guilherme
sérgio, como disse precisamos fazer o select before update de qualquer maneira para pegar o timestamp e informar para o cliente qualquer campo que tenha sido alterado desde que ele carregou aquele registro.
E sério, um selectzinho de nada melhor que passar alguns vários kbytes a mais em todo santo update.
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2005 16:17:50
|
noelrocha
Thread.start()
Membro desde: 12/07/2005 12:46:51
Mensagens: 32
Offline
|
Fugindo um pouco do tópico ..
Mas o hinernate me impressiona .. caramba ...
Agora voltando .. hehehe .....
Estava fazendo uns testes e estou tendo um problema e me parece algo parecido ....
por exemplo .. estou tentando fazer isso: (é tosco, é teste.. hehe) ...
Pelo que entendi o Guilherme precisa pegar um objeto e alterar somente os campos que ele quer e persistir somente estes campos mantendo os outros sem precisar carregar o objeto primeiro....
Nesse teste tosco ao extremo tento fazer algo do tipo ..
Mas em vez do hibernate dar um update depois que mexo na descrição e todos os outros campos colocando null ele insere um novo registro ...
Mesmo eu tendo "setado" o id ....
tava tentando encontrar uma solução p/ esse problema e acabei caindo nesse outro ... me parece ser idiotice de minha parte ... se alguem entedeu oq tentei fazer e o pq desse resultado ...
mas quanto ao problema inicial, eu pensei no caso deu querer colocar um campo p/ null ...
a ideia final que se teve foi de preecher o objeto e o hibernate só atualiza o que foi alterado ...
o Guilherme sugeriu criar o proxyLoad() e o problema é no fato de quando você for salvar, vc não tem a garantia de que alguem alterou o dado no banco ... complicado ....
só não sei como dizer ao hibernate que "aquele objeto" pertence a "aquele registro daquela entidade" sem trazer todos os dados ...
não deve ser complicado ao extremo, a parte complicada e de garantir que o dado não vai ser alterado por ninguem .. (o problema do locking) ...
falei tudo isso pq afinal acho q entendi o problema na integra ... hehehe
e to tentando explicar p/ quem ainda tah confuso q nem eu tava ...
pois bem .... vou tentar entender o hibernate por traz dele e vamos ver se dai tiramos algo .....
|
[]´s
________
Noel R. Morais |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2005 16:20:38
|
noelrocha
Thread.start()
Membro desde: 12/07/2005 12:46:51
Mensagens: 32
Offline
|
o unico problema agora passou a ser o do locking?
to atrasado .. hehehehe
|
[]´s
________
Noel R. Morais |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2005 17:43:48
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
Quando queremos fazer o select como o Lipe falou nao tem problema nenhum. O hibernate oferece varios tipos de locking.
Mas quando preciso fazer fine-tuning da aplicacao o select a mais que o hibernate possui para fazer a verificacao da versao ou timestamp deveria ser configuravel.
Tentei a anotacao selectBeforeUpdate=false. Funciona. Ele nao faz o select
Mas ai ele da update em todos os campos.
Ai tentei com selectBU=false e dynamicUpdate=true. Ele nao faz select mas faz update de todos os campos novamente.
Acho que nesse caso de ter uma instancia transiente e ter que dar um update somente nesses campos nao adianta
Guilherme
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2005 17:46:29
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
Yep, por isso a gambiarra com AOP hehe
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2005 17:56:09
|
Guilherme Silveira
Administrador
Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline
|
talvez com merge, selectBU=false, dU = true... vou tentar
|
-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2005 22:23:38
|
noelrocha
Thread.start()
Membro desde: 12/07/2005 12:46:51
Mensagens: 32
Offline
|
nao deixe de diser o progresso ... hehehe
|
[]´s
________
Noel R. Morais |
|
|
 |
|
|