| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2012 14:59:05
|
fabiofalci
GUJ Master
![[Avatar]](/images/avatar/c359889a833e7612e0cff1dc69d272bc.png)
Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline
|
Olá.
Preciso que o hibernate ignore um atributo não @Transient ao persistir.
Pq não @Transient?
Pq numa situação preciso que este objeto passe pela rede, ou seja, ele será serializado e o processo de serialização também ignora @Transient.
Mas nesse caso quero o atributo vá junto.
Ou seja, se coloco @Transient ele não é persistido, o correto.
Mas ele não passa pela rede.
Se não coloco @Transient, ele será persistido, errado.
Por outro lado ele passará pela rede.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/01/2012 15:40:28
|
heatcold
JavaGuru
![[Avatar]](/images/avatar/39abd1c6e1d6aa57455adf5eda4325a8.jpg)
Membro desde: 22/09/2006 10:34:26
Mensagens: 240
Offline
|
Uma solução seria criar uma classe, herdando a primeira, configurando essa classe para serializar o atributo marcado como @Transient.
Essa classe seria utilizada na serialização do objeto pela rede.
Outra solução, seria setar o atributo para null, antes da chamada do hibernate.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2012 06:50:15
|
fabiofalci
GUJ Master
![[Avatar]](/images/avatar/c359889a833e7612e0cff1dc69d272bc.png)
Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline
|
Obrigado pelas dicas heatcold. Me deu algumas ideias.
A primeira opção é complicado. Muitas classes.
Apenas se usasse uma manipulação de bytecode para gerar essas classes em runtime. Mas isto tb teria problemas, pois o outro lado, a outra JVM não teria essas novas classes geradas em runtime.
A segunda opção não é viável pois não existe coluna para este atributo na tabela, não é questão de ser ou não persistido, mas sim não há onde persistir. Dai o hibernate estoura pois a coluna não existe.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/01/2012 10:50:49
|
heatcold
JavaGuru
![[Avatar]](/images/avatar/39abd1c6e1d6aa57455adf5eda4325a8.jpg)
Membro desde: 22/09/2006 10:34:26
Mensagens: 240
Offline
|
Uma outra forma de fazer o que você quer seria escrever manualmente o insert.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/04/2012 12:58:08
|
dalifreire
Entusiasta Java
Membro desde: 02/04/2004 11:35:20
Mensagens: 15
Offline
|
ja tentou colocar os atributos na anotação ?
|
|
|
 |
|
|