Membro desde: 21/06/2007 13:23:02
Mensagens: 5
Offline
Como que faço para utilizar herança nos meus beans? Por exemplo, tenho uma classe pessoa e uma outra, funcionário que extends pessoa. O Neo dá suporte a isso?
Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline
Sim é possível utilizar Herança. Você terá que colocar algumas anotações extras nos seus beans (entidades).
Existem 3 formas de herança, providos pelo Hibernate.
Verifique a documentação do Hibernate Annotations para saber qual é a forma mais indicada para a sua situação.
Eu recomendo a utilização do método Joined Subclasses é mais simples e possui menos complicações. Para esse tipo de herança você deve anotar a classe pai de todas na hierarquia com
@Inheritance(strategy=InheritanceType.JOINED)
Nesse caso o primary key da tabela filha é um foreign key para a tabela pai
Membro desde: 14/01/2008 11:37:24
Mensagens: 1
Offline
Um lembrete...
Precisei mapear uma herança usando Joined Subclasses onde a tabela filha não possuia a FK com o mesmo nome da PK da tabela mae. Para tanto, é necessário colocar a seguinte anotação na subclasse:
//SUPER CLASSE
@Inheritance(strategy=InheritanceType.JOINED)
public class Pessoa() {...}
//SUBCLASSE
@PrimaryKeyJoinColumn(name="cdusuario")
public class Usuario() extends Pessoa {...}
Desta forma, no momento do JOIN o hibernate irá juntar cdusuario com cdpessoa. Não foi neessário declarar o field cdusuario na classe Usuario.
Se a subclasse possuir uma FK com o nome da PK da tabela mae, o hibernate faz o join direto.