Dúvidas com update [RESOLVIDO]  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Galera, uma dúvida que deve ser bem recorrente a todos é quanto ao update, na persistência de dados.

Imaginem que eu tenho um VO que é persistido. E uma tela do meu sistema eu posso alterar alguns dados trazidos, mas não todos.

Como vocês cuidam da atualização dos dados neste caso? Imagine que um campo não foi alterado, mas um atributo do objeto está como null. Ela não pode alterar o campo correspondente na base para null, pois ele não foi alterado.

Como vocês tratam isso?

This message was edited 1 time. Last update was at 05/05/2005 17:35:40


gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

Se vc usar um proxy pra acessar seu objeto (e isso implica em usar um factory para solicitar uma instancia do objeto) vc pode manter um mapa das propriedades que foram eventivamente alteradas, acho que é assim que o Hibernate funciona e é o jeito mais facil e menos intrusivo, eu fiz isso uma vez e ficou bem legal (na verdade nao tinha objetos, só interfaces e o proprio proxy mantinha as propriedades em um map )

Outra opcao é o objeto manter uma lista do que foi alterado e ter uma interface com metodos para recuperar essa lista, é um persistence-system-tabajara hoje em dia, mas tb funciona (e tb já fiz assim).

Uma outra opfcao é usar AOP interceptando os sets, mas isso nunca fiz

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
mauro_schneider
JavaChild

Membro desde: 31/03/2005 07:43:23
Mensagens: 144
Offline

com Hibernate a coisa fica + fácil
dynamic-update="true"
e
dynamic-insert="true"
[Email] [WWW]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Ou ainda, caso a primeira solucao do smota - que eh otima - seja muito trabalho pra isso (sei la, as vezes nao eh um codigo tao grande e nao vale a pena complicar tanto), voce pode usar um bom e velho isDirty()
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

cv wrote:voce pode usar um bom e velho isDirty()


Ele precisa de um String[] changedProperties()

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Putz! Haja controle nessa classe.

Valeu galera!

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team