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) …
Produto prod = new Produto() ;
prod.setDescricao("Produto de teste Tosco") ;
prod.setPreco(10.0) ;
DAOProduto daoProduto = new DAOFactory().getDAOProduto() ;
daoProduto.salva(prod) ;
daoProduto.commit() ;
daoProduto.close() ;
//EU SEI QUE O ID DESSE PRODUTO QUE ACABEI DE SALVAR É 1 ....
Produto prod = new Produto() ;
prod.setDescricao("Produto de teste Tosco ALTERADO SÓ A DESCRICAO") ;
prod.setId(1L) ;
daoProduto = new DAOFactory().getDAOProduto() ;
daoProduto.salva(prod) ;
daoProduto.commit() ;
daoProduto.close() ;
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 …