terça-feira, 11 de outubro de 2011

Exemplo de herença no Hibernate

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType=DiscriminatorType.CHAR,length=1,name="tipo_pessoa")
@DiscriminatorValue(value="0")
@DiscriminatorFormula(value = "case when tipo_pessoa is null then 'F' end")
// Outro exemplo de @DiscriminatorFormula
//@DiscriminatorFormula(value = "case when tipo_pessoa in ('X', 'Y', 'Z') then 'F' end")
@SequenceGenerator(name="seq", sequenceName="seq", allocationSize=1)
public class Pessoa{
   @Id
   @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq")
   private int id;
   private String tipo_pessoa;
}

@Entity
@SequenceGenerator(name="seq", sequenceName="seq", allocationSize=1)
@DiscriminatorValue(value="J")
public class PessoaJuridica Extendes Pessoa{
   private Integer cnpj;
}

@Entity
@SequenceGenerator(name="seq", sequenceName="seq", allocationSize=1)
@DiscriminatorValue(value="F")
public class PessoaFisica Extendes Pessoa{
   private Integer cpf;
}

Nenhum comentário:

Postar um comentário