Hibernate: Problemas com cascade para persistir relacionamento parent-child  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
cassio
GUJ Master
[Avatar]

Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline

Olá pessoal,

Tenho um relacionamento entre um vôo e os passageiros deste vôo. Esse relacionamento pode, por exemplo, ser mapeado como descrito abaixo


Estou usando um filtro para implementar o padrão "open session in view" e DAOs genéricos conforme demonstrado em http://www.hibernate.org/328.html.

Pelo que sei, usando CascadeType.PERSIST e CascadeType.MERGE, ao adicionar um novo passageiro na lista de passageiros de um Voo, eu não precisaria chamar save() duas vezes, uma para a entidade da classe Voo e outra para o passageiro. Uma vez somente, para o objeto da classe Voo seria o suficiente, certo?

Estou fazendo algo mais ou menos assim em uma classe de negócio:


E na classe Voo garanto o relacionamento bidirecional fazendo


Acontece que quando utilizo o método adicionarPassageiro(long vooId, Passageiro p), o passageiro não é persistido.
Já debuguei tudo e não acho o erro... A transação está sendo corretamente comitada quando o request HTTP volta para o filtro, conforme o "open session in view", mas mesmo olhando no console do Eclipse, nenhuma sentença SQL de insert ou update é gerada pelo Hibernate.

Onde posso estar errando?

Obrigado e um abraço!

This message was edited 3 times. Last update was at 18/11/2007 18:04:17


Cássio Marques

Blog
cassio
GUJ Master
[Avatar]

Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline

Pessoal, me desculpem por dar um "up" no tópico. Fiz a besteira de postar isso no domingo e óbviamente niguém viu e agora o tópico ficou "lá prá baixo". Se alguém puder me ajudar...

Obrigado!

Cássio Marques

Blog
ovelha
Java Ninja
[Avatar]

Membro desde: 12/09/2007 13:17:41
Mensagens: 281
Offline

Ola, isto realmente deveria funcionar desde que o seu objeto passageiro esteje relacionado a sessão. Desde que o mesmo seja um objeto carregado pelo hibernate.
Este é o seu caso? Caso não seja, não vai funfar mesmo.

bééééééééééééééééé
cassio
GUJ Master
[Avatar]

Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline

ovelha wrote:Ola, isto realmente deveria funcionar desde que o seu objeto passageiro esteje relacionado a sessão. Desde que o mesmo seja um objeto carregado pelo hibernate.
Este é o seu caso? Caso não seja, não vai funfar mesmo.


O objeto Voo está relacionado à uma sessão e foi carregado pelo Hibernate. O objeto da classe Passageiro acabou de ser criado.
Pior que tenho certeza que fiz como descrito no "Java Persistence With Hibernate", não consigo achar o que pode estar errado...

Cássio Marques

Blog
robertouba
JavaBaby
[Avatar]

Membro desde: 21/10/2009 23:41:28
Mensagens: 82
Localização: Jacutinga, Minas Gerais
Offline

Cara você pode receber na sua classe somente o VOO, exemplo:






______________________________
[RoxF.]
[Email] [WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team