hibernate update/merge  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
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
[Email] [WWW] [MSN]
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.
[ICQ]
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
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
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
[Email] [WWW] [MSN]
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.
[ICQ]
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
[Email] [WWW] [MSN]
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
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team