| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/06/2010 21:58:43
|
mendigosujo
JavaEvangelist
Membro desde: 24/09/2007 08:28:23
Mensagens: 326
Offline
|
Fala feras
Tenho 3 tabelas pra criar meu relacionamento N-N só que não estou conseguindo fazer isso no Hibernate. Mapiei minhas tabelas da seguinte maneira:
IdiomaPessoaTO -> Tabela que vai mapear os relacioanemtnso entre as tabelas das entidades PessoaTO e IdiomaTO
PessoaTO
IdiomaTO
A tabela de Idiomas apenas vai armazenar uma lista de idiomas e seu id deverá fazer referência com os objetos Pessoa que selecionamente. Após o mapeamento, eu tentei fazer no service:
O problema é que os relacionamento 1-1 sao inseridos normalmente mas os que são mais de 1, não fazem nada...não inserem e nem dão erro. O que estou errando?
Abs
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2010 10:48:26
|
partenon
JavaChild
Membro desde: 27/06/2010 15:08:10
Mensagens: 103
Localização: Brno, Czech Republic
Offline
|
Bom, tecnicamente, este nao eh um relacionamento N-N. Isso sao dois relacionamentos 1-N. Veja:
Uma Pessoa tem ConhecimentoIdioma (1-N)
ConhecimentoIdioma consiste em nivel de proficiencia e em um idioma (a partir que o "relacionamento" tenha uma propriedade extra, ele deixa de ser uma tabela de ligacao ou relacionamento para ser uma entidade por si so).
Um Idioma nao "pertence" a nenhuma pessoa (eh a ponta "passiva" do relacionamento). Nao faz sentido ligar de volta o idioma (bi-directional relationship), mas ele tambem seria um 1-N se for mapeado.
Eu recomendaria fazer assim, caso tenha flexibilidade para mudar:
Mas caso realmente precise fazer do jeito que esta tentando, eu diria que o problema eh que vc nao esta mapeando os relacionamentos em seu IdiomaPessoaTO (alem do que, vc esta usando um Long para representar um idioma e uma pessoa). O correto seria usar IdiomaTO e PessoaTO (no lugar de Long) e mapear os relacionamentos como dois ManyToOne no IdiomaPessoaTO (e OneToMany com mappedBy nas outras pontas):
|
http://www.google.com/profiles/partenon |
|
|
 |
|
|
|
|