Hibernate: Como posso participar de duas classes em uma mesa?
Pergunta
Então, eu sou muito novo no Hibernate e tenho um problema.
Eu tenho uma classe abstrata (a super classe, classe super) e 5 subclasses que devem usar as propriedades da classe Super e adicionar uma nova propriedade (uma nova coluna)
Então, como posso fazer isso? Devo estender a classe Super da Java, ou é suficiente para participar das aulas usando uma anotação JPA.
Aqui está o segundo problema. Como posso ter 1 tabela para 2 aulas. Alguém (mais inteligente que eu) me disse para usar o @Jointable, mas formar minhas pesquisas com o Google, acho que preciso usar @Iritance (estratégia = heretanceStrategy.Joined)
Posso usar o @Jointable também?
Nenhuma solução correta
Outras dicas
O seu é um caso de herança:
- Adicione o
@Inheritance(stretegy=InheritanceStrategy.SINGLE_TABLE)
anotação em seuSuper
- Adicione o
@DiscriminatorColumn
anotação (e definindo seus atributosname
ediscriminatorType
) (novamente noSuper
) - em cada subclasse
extend
aSuper
, e adicione a anotação@DiscriminatorValue
, com valor diferente para cada uma das subclasses.
Se você é novo no Hibernate, deve ler o seu documentação. Estratégias de herança são explicadas aqui e usando anotações para expressar a estratégia de herança é explicada aqui