@Inheritance(strategy=InheritanceType.JOINED)

0 respostas
RicardoYukito

Eaeee… estou com o seguinte problema!
to fazendo um sistema (didático, na verdade meu TCC) e preciso mapear minhas heranças através da InheritanceType.JOINED, pois quero que cada classe minha seja uma tabela no banco. Estou utilizando annotation pra mapear.

A herança é a Seguinte : PESSOA
/
FISICA JURIDICA
|
USUARIO
/
Advogado Funcionario.

E toda FISICA tem uma LIGAÇAO many-yo-one one-to-many com juridica.

A herança TEM que ser assim. nao me pergunte o porque. ordens do orientador ;/.

Já fiz o seguinte:

@Entity
@Table(name = “PESSOA”)
@Inheritance(strategy=InheritanceType.JOINED)

public class Pessoa implements Serializable {



@Entity

@Table (name = FISICA)

@PrimaryKeyJoinColumn (name = FISICA_ID)
public class Fisica extends Pessoa  implements Serializable {



E o mesmo vai se repetindo a todas as outras classes

Quando executo para gerar o banco vem o seguinte erro:

Exception in thread main org.hibernate.AnnotationException: Foreign key circularity dependency involving the following tables: USUARIO, FISICA, ADVOGADO

at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:470)

at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:304)

como resolvo isso ???
preciso mapear as classes sempre para que uma SubClasse tenha um FK apontando o ID da Mae. No caso FISICA teria o ID_FISICA e ID_PESSOA_FK.
É possivel isso com o Hibernate, pois pelo que vi ele é totalmente Orientado á Objeto e eu estou querendo uma estrutura de banco relacional ?
Qual a melhor forma ou mais proximo disso que consigo chegar ?

Agradeço a atençao!!

Criado 14 de junho de 2010
Respostas 0
Participantes 1