duvida de relacionamento hibernate..como trazer os filhos sempre?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
mendigosujo
JavaEvangelist

Membro desde: 24/09/2007 08:28:23
Mensagens: 326
Offline

Opa

Tenho um relacionamento 1-N e criei da seguinte maneira:

EmpresaBean


CargaBean


Eu qria que a lista de cargas vc atualizada sempre que eu desse um empresaBean.getCargas()

Tem como fazer isso por annotations ou preciso chamar um método de consulta no BD?

[]'s
kicolobo
Moderador
[Avatar]

Membro desde: 19/07/2006 14:11:09
Mensagens: 1188
Localização: Belo Horizonte
Offline

Sim,
mapeie como lazy = false

http://devkico.itexto.com.br

Twitter: http://www.twitter.com/loboweissmann

Vamos aprender Grails?
http://www.grailsbrasil.com.br
[WWW] [MSN] [ICQ]
mendigosujo
JavaEvangelist

Membro desde: 24/09/2007 08:28:23
Mensagens: 326
Offline

onde que faço isso?

eu mudei o Fetch pra LAZY e não resolveu!

EmpresaBean


Carga


O que estou fazendo de errado?

[]'s

This message was edited 1 time. Last update was at 10/06/2008 11:02:34

Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline

mendigosujo wrote:onde que faço isso?

eu mudei o Fetch pra LAZY e não resolveu!

EmpresaBean


Carga


O que estou fazendo de errado?

[]'s


Se vc mudar o fech pra lazy vc ta dizendo q ele tem q ser preguiçoso, entao vai continuar o problema, ali é EAGER msm, guloso, no property vc mapeia Lazy="false".
Ex:




EDIT: Isso no xml.
Vc ta usando o Generate do Hibernate ou mapeando nos hbms da vida?

This message was edited 1 time. Last update was at 10/06/2008 12:06:37


Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas
[Email] [WWW] [MSN]
mendigosujo
JavaEvangelist

Membro desde: 24/09/2007 08:28:23
Mensagens: 326
Offline

como assim? Não uso hbm nenhum
eu faço só a annotation nas classes



Como que fica esse property?
Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline

mendigosujo wrote:como assim? Não uso hbm nenhum
eu faço só a annotation nas classes



Como que fica esse property?


XMl se vc tivesse usando o Hibernate de outra forma...
Coloque essa anotação:

Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas
[Email] [WWW] [MSN]
mendigosujo
JavaEvangelist

Membro desde: 24/09/2007 08:28:23
Mensagens: 326
Offline

Se eu fizer:



Ele não me busca nada nem na primeira vez que eu entro hehe

Eu preciso por o @Proxy na classe 'pai' ou na filha?

This message was edited 1 time. Last update was at 10/06/2008 16:51:59

Eduardo Bregaida
Moderador
[Avatar]
Membro desde: 13/11/2003 14:11:35
Mensagens: 2416
Localização: São Caetano do Sul - SP
Offline

mendigosujo wrote:Se eu fizer:



Ele não me busca nada nem na primeira vez que eu entro hehe

Eu preciso por o @Proxy na classe 'pai' ou na filha?


É em cima do public class

Blog - Java Anywhere
@bregaida - Twitter
Flickr - Fotos
Cursos de Java?

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
-Lewis Carroll, Alice no País das Maravilhas
[Email] [WWW] [MSN]
mendigosujo
JavaEvangelist

Membro desde: 24/09/2007 08:28:23
Mensagens: 326
Offline

Sim..eu coloquei em cima..é que na hora do edit, eu coloquei na mão e não tinha percebido haha
Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

você precisa chamar session.refresh() no seu objeto para poder atualizar a lista dele, já que a coleção só é carregada uma vez enquanto a entidade for gerenciada (managed).

Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
mendigosujo
JavaEvangelist

Membro desde: 24/09/2007 08:28:23
Mensagens: 326
Offline

como que eu faço isso?...alias, onde eu coloco o session refresh? pq eu criei um dão 'generico' para operacoes padrão.

po, ele só atualiza a lista qdo eu altero haha..ai eu retorno pra pagina e ta certo, mas qdo eu excluo ou incluo um novo registro, ele nao atualiza a lista!

eu tentei um session.refresh(object) antes do commit(), mas ele não serve e eu recebo a exception que não existe um objeto daquele no banco..mas eu recebo isso pq eu não mando o objeto 'pai' ( Empresa ) para o BD..eu mando o filho pq se eu mandar o pai, eu fico recebendo exceção de que estou com outra conexão aberta e eu não sabia mais o q fazer..podem notar q está comentado os session.close() pq ai ele dava pau e não abria outro...ai eu deixei assim e até agora não tive problemas...vou colcoar meu sessionFactory e meu config.xml tb

session factory




e meu hibernate.cfg.xml

This message was edited 3 times. Last update was at 10/06/2008 17:25:39

Fabio Kung
JavaEvangelist

Membro desde: 08/03/2004 08:24:47
Mensagens: 445
Localização: São Paulo
Offline

sempre que você atualiza algo no banco, precisa atualizar ou recarregar a lista para manter o estado dos objetos em memória sincronizado com o que está no banco

Procurando por oportunidades de emprego?
OndeTrabalhar.com
OndeTrabalhar.com Java?


http://blog.caelum.com.br


Fabio Kung
[WWW] [MSN] [ICQ]
mendigosujo
JavaEvangelist

Membro desde: 24/09/2007 08:28:23
Mensagens: 326
Offline

então Fabio..não consigo fazer isso pq não to passando o objeto Pai...se eu passar ele, eu fico com uma porrada de erro aqui ... erro que a session ta fechada ou que tento usar o mesmo objeto em 2 sessions..eu fiquei doido e desiti....ai eu atualizo e removo o objeto da seguinte maneira:



Todos meus DAO extendem o GeralDAO e não tem nenhum método dentro, somente o construtor!

Eu mudei os métodos para


e recebo a exceção

Caused by: org.hibernate.UnresolvableObjectException: No row with the given identifier exists: [br.com.ms.bean.carga.CargaBean#2100]


isso ta acontecendo depois dos commits pq ele tenta atualizar um objeto que não existe mais ( no caso do delete )

This message was edited 1 time. Last update was at 10/06/2008 17:46:17

 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team