[JPA] Problema com relacionamento ManyToOne -> OneToMany  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
Mikhas
Virtual Machine Man
[Avatar]

Membro desde: 17/06/2008 11:10:50
Mensagens: 677
Localização: São Paulo
Offline

Ahe galera!

Estou montando um sistema para a facul com JPA etc.
Pulando para o problema, o caso é o seguinte: Tenho um objeto Requisito que possui diversos atributos. Quando vou persistir um novo requisito com novos atributos, o hibernate executa o insert do requisito, um insert para cada atributo e por fim, executa um ultimo insert associativo e é nesse que da o erro. Acredito que o erro esta na maneira que anotei o relacionamento.

Grato desde já.






Comandos Gerados:


O ultimo comando que da problema. Não deveria ser executado.


Diagrama das tabelas em anexo.
[Thumb - tabelas.png]
 Nome do arquivo tabelas.png [Disk] Download
 Descrição Diagrama de tabelas
 Tamanho 5 Kbytes
 Baixado:  25 vez(es)


Refractor 1.6 - Easy reflection framework
Agora muito mais rapido!
Raze - The fastest CSS selector engine




[Email] [MSN]
mrrbigu
Debugger
[Avatar]

Membro desde: 06/12/2007 17:45:50
Mensagens: 66
Localização: Espírito Santo
Offline

Esse último insert está aparecendo porque você usou a anotação @JoinTable, que normalmente só se justifica em relacionamentos ManytoMany, onde existe a necessidade de uma tabela de ligação que guarda as chaves primárias dessas tabelas. Você usou esse comando informando que o nome da tabela é "tbl_atributo" e ele tenta fazer um insert das chaves primárias nessa tabela, mas pelo esquema que você passou ela não existe, daí o erro.

Já que o relacionamento é ManytoOne, não há necessidade dessa tabela de ligação, remova o @JoinTable, use apenas o @JoinColumn que deve funcionar.
Mikhas
Virtual Machine Man
[Avatar]

Membro desde: 17/06/2008 11:10:50
Mensagens: 677
Localização: São Paulo
Offline

Valeu! Consegui fazer apenas com o JoinColumn e adicionando um parametro no @OneToMany.

Gostaria de saber, como eu faço agora se meu objeto tiver 2 campos como chave no Requisito? Terei que criar um Embeddable?

Meu código atual:




Refractor 1.6 - Easy reflection framework
Agora muito mais rapido!
Raze - The fastest CSS selector engine




[Email] [MSN]
mrrbigu
Debugger
[Avatar]

Membro desde: 06/12/2007 17:45:50
Mensagens: 66
Localização: Espírito Santo
Offline

Sim, você tera que usar @Embeddable.
veja em: http://docs.jboss.org/ejb3/app-server/HibernateAnnotations/reference/en/html_single/index.html#d0e1517
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team