Pessoal, já estou entrando no segundo dia com este problema e gostaria de uma ajuda…
Tenho um modelo de dados qual devo seguir:
ClasseA ( estratégia JOINED )
ClasseB extende ClasseA
ClasseC extende ClasseA
Até aqui tudo bem, devo ter uma tabela ClasseA e outras duas tabelas relacionadas.
O problema é quando tento criar herança com a ClasseC usando estratégia SINGLE_TABLE:
ClasseC extende ClasseA ( estratégia SINGLE_TABLE, discriminatorColumn TYPE )
ClasseD extende ClasseC ( discriminatorValue ‘ClasseD’ )
ClasseE extende ClasseC ( discriminatorValue ‘ClasseE’ )
Com isso quero que exista simplesmente uma tabela ClasseC, com campos de ClasseD e ClasseE.
Mas mesmo especificando a estratégia como SINGLE_TABLE, o hibernate gera as duas tabelas ( ClasseD e ClasseE ).
ajuda?
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class ClasseA { ... }
@Entity
public class ClasseB extends ClasseA { ... } // Tabela ClasseB gerada. Ok!
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "tipo")
public abstract class ClasseC extends ClasseA { ... } // Tabela ClasseC gerada. Mas não tem os campos de ClasseD e ClasseE.
@Entity
@DiscriminatorValue("ClasseD")
public class ClasseD extends ClasseC { ... } // Tabela ClasseD gerada. (não era o q queria)
@Entity
@DiscriminatorValue("ClasseE")
public class ClasseE extends ClasseC { ... } // Tabela ClasseD gerada. (não era o q queria)