Problemas Hibernate Annotation ManyToMany e OneToOne(pk sendo fk)  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
rafael_mietlicki
What is classpath?

Membro desde: 07/02/2008 23:14:49
Mensagens: 8
Offline

Pessoal blzinha?

Estou fazendo mapeamentos com hibernate annotation e estou enfretando algumas dificuldades, tanto no oneToOne quanto no ManyToMany.
Segue abaixo elas:

1- Tenho duas classes, PC e placaMae, elas estao persistindo perfeitamente, como podem ver o mapeamento e de 1 para 1.


A minha duvida é como faco para que o id da minha classe PC seja FK vindo de PlacaMae??Gostaria que tivesse em PC uma chave primaria simples, sendo ela o id de placaMae.
Eu estou pesquisando isso a algumas semanas, e peço a gentileza, se puderem me ajudar com exemplos, referencias, de qualquer forma.

2- Como podem ver abaixo, tenho duas classes, Aluno e Curso, o relacionamento entre elas e n para n.


Esse e o script que estou utilizando para a criacao das tabelas no PostGresql:


A persistencia nas entidades Aluno e Curso esta ocorrendo perfeitamente, minha duvida é, como faço para que seja feito a persistencia na entidade curso_aluno
sempre que for inserido um aluno ou curso, ou ambos?qual é a forma mais correta disto ocorrer?Não é necessario eu criar um bean para essa entidade né??


Agradeço a atençao de todos

lauronolasco
JavaEvangelist
[Avatar]

Membro desde: 30/11/2007 19:19:59
Mensagens: 409
Localização: Vitória da Conquista - BA
Offline

Simples... sua classe placamae deve ser "implements Serializable"

e em PC fica assim:

"Conhecimento nunca é demais!"
[Email] [MSN]
rafael_mietlicki
What is classpath?

Membro desde: 07/02/2008 23:14:49
Mensagens: 8
Offline

Muito obrigado lauronolasco, deu certo aqui, mas se eu quiser fazer com que em minha tabela a unica pk seja fk é mesma coisa?

Ah quanto a minha duvida 2, pode esclarecer?

muito obrigado

abraço
lauronolasco
JavaEvangelist
[Avatar]

Membro desde: 30/11/2007 19:19:59
Mensagens: 409
Localização: Vitória da Conquista - BA
Offline

bom se a sua segunda duvida se refere ao mapeamento da classe CursoAluno....

Crie uma classe a parte para implementar uma PK:



e na sua classe CursoAluno:


"Conhecimento nunca é demais!"
[Email] [MSN]
lauronolasco
JavaEvangelist
[Avatar]

Membro desde: 30/11/2007 19:19:59
Mensagens: 409
Localização: Vitória da Conquista - BA
Offline

Muito obrigado lauronolasco, deu certo aqui, mas se eu quiser fazer com que em minha tabela a unica pk seja fk é mesma coisa?


é sim..

"Conhecimento nunca é demais!"
[Email] [MSN]
rafael_mietlicki
What is classpath?

Membro desde: 07/02/2008 23:14:49
Mensagens: 8
Offline


lauronolasco , fiz como vc informou, apenas implementei essas duas classes, que segue a mesma ideia das citadas anteriormente, acrescentei apenas o atributo @Embeddable na classe dona da fk, me corriga se estiver errado.
o problema e que quando tento efetuar a persistencia de Aparelho, me ocorre o erro:

ERROR: column "numero" of relation "aparelho" does not exist

ps:lembrando que dessa forma a persistencia de Numero e feita normalmente
Sem o atributo @Embeddable na classe Numero o erro é o mesmo

Segue abaixo as classes e o script para a criacao da tabela no BD:

Classe principal que executa a operacao de persistencia:

script para criacao do BD:

Sabe me dizer o pq que esta ocorrendo este erro???

Agradeço desde já
rafael_mietlicki
What is classpath?

Membro desde: 07/02/2008 23:14:49
Mensagens: 8
Offline

ERROR: column "numero" of relation "aparelho" does not exist


Pessoal, por favor, alguem pode me ajudar com esse problema???
lauronolasco
JavaEvangelist
[Avatar]

Membro desde: 30/11/2007 19:19:59
Mensagens: 409
Localização: Vitória da Conquista - BA
Offline

detalhe... como vc nao especificou a o nome da coluna 'numero no @JoinColumn' ele pegou por padrao o nome 'numero'..

no erro diz q numero nao existe em aparelho... da uma olhada no bando e ve o nome da coluna

"Conhecimento nunca é demais!"
[Email] [MSN]
rafael_mietlicki
What is classpath?

Membro desde: 07/02/2008 23:14:49
Mensagens: 8
Offline

lauronolasco fiz isso mas nao resolveu o problema.
pelo que percebi, ele não está pegando o id da classe numero como pk, esta pegando o campo numero da tabela, pois no momento do insert gerado no console, ele faz insert into aparelho(modelo,numero) values("motorolla",99851291), ele esta se perdendo nesse momento...
rafael_mietlicki
What is classpath?

Membro desde: 07/02/2008 23:14:49
Mensagens: 8
Offline

lauronolasco conseguir resolver o problema, tive de criar uma classe que representasse a pk, e ai sim anota-la com @Embeded, e a classe aparelho, coloquei a instancia dessa classe com a anotação @EmbededId, ai funfou...

agora outra duvida, tenho um relacionamento ManyToMany, entre curso e departamento, gerando a tabela associativa curso_departamento, gostaria que sempre que fosse inserido um curso ou departamento fosse inserido na tabela associativa..como faço isso???


agradeço desde já
rafael_mietlicki
What is classpath?

Membro desde: 07/02/2008 23:14:49
Mensagens: 8
Offline

agora outra duvida, tenho um relacionamento ManyToMany, entre curso e departamento, gerando a tabela associativa curso_departamento, gostaria que sempre que fosse inserido um curso ou departamento fosse inserido na tabela associativa..como faço isso???


Alguem pode me ajudar?

Tks
rafael_mietlicki
What is classpath?

Membro desde: 07/02/2008 23:14:49
Mensagens: 8
Offline

Pessoal isso é tão complicado assim?

por favor, quem puder me ajudar....

Vlws
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team