[RESOLVIDO] Dúvida mapeamento de herança de classes usando JPA  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
papotti
What is classpath?

Membro desde: 01/08/2008 13:27:35
Mensagens: 9
Offline

Boa tarde pessoal,

Estou com um problema para gerar o banco de dados de uma aplicação que estou fazendo usando JPA.
No meu exemplo eu tenho 3 classes: Pessoa, Professor e Disciplina. Professor herda de Pessoa e Disciplina está associado com professor em um relacionamento ManyToOne (Cada disciplina possui 1 único professor e um professor pode estar associado com N disciplinas)

Segue o código das classes usando as annotations do JPA.

Pessoa.java



Professor.java



Disciplina.java



Meu objetivo é que através da API JPA o banco de dados seja gerado corretamente. Porém, quando eu mando gerar o banco de dados, na tabela disciplina é criada uma chave estrangeira PROFESSOR_ID apontando para o campo CPF da tabela Pessoa, mas na verdade, deveria apontar para o campo CPF da tabela Professor (que herda de pessoa)

Alguém sabe se estou fazendo algo errado ou se existe um jeito de eu conseguir fazer eu referenciar a tabela professor ao invés da tabela pessoa nessa geração?

Ps: Estou usando Eclipse com EclipseLink 2.1 (JPA2)

Obrigado desde já...

This message was edited 1 time. Last update was at 16/06/2011 10:31:24

Kanin Dragon
Virtual Machine Man
[Avatar]

Membro desde: 01/02/2011 12:46:04
Mensagens: 682
Localização: Depende
Offline

Jovem,

Você está gerando as ORM através do hibernate tools?

Para facilitar o entendimento post o DER do banco de dados ou os scripts de criação de tabela.


Abs,

This message was edited 1 time. Last update was at 14/06/2011 19:26:36


http://www.guj.com.br/java/244602-calunia-desabafo

Dragão Torpente
Shidoshi Ninjutsu

Engenharia Eletrônica - ITA
Mestrado Engenharia Eletrica - UFRJ
Futuramente Doutorado - Harvard

SCJP 5
SCWCD 5
SCJD
SCBCD
SCDJWS
SCEA

Não respondo dúvidas via MP. Não seja egoista e abra um tópico.
papotti
What is classpath?

Membro desde: 01/08/2008 13:27:35
Mensagens: 9
Offline

oi amigo,

na verdade, não sei se vc entendeu... mas não estou partindo do banco de dados para gerar as entidades.
O que eu quero, na verdade, é fazer o contrário: a partir das entidades que eu escrevi eu desejo gerar as tabelas do banco de dados.

desta forma eu não tenho der ou scripts do banco, uma vez que é isso que eu desejo que a aplicação gere pra mim...
papotti
What is classpath?

Membro desde: 01/08/2008 13:27:35
Mensagens: 9
Offline

Pesquisando melhor mais pessoas tiveram o mesmo erro em:

http://java.net/jira/browse/GLASSFISH-2983
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1015
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2898

Alguém já viu esse erro? existe alguma maneira de contornar?
papotti
What is classpath?

Membro desde: 01/08/2008 13:27:35
Mensagens: 9
Offline

E ae pessoal,

Descobri o problema.

Apenas o JPA do HIBERNATE consegue fazer esse tipo de mapeamento corretamente.
Testei usando o EclipseLink, TopLink e Hibernate com o mesmo código no Netbeans 7... o hibernate foi o único que mapeou corretamente

Fica a dica para todos... prefiram sempre usar o hibernate...
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team