…senhores bom dia … to com um probleminha no mapeamento de Herança com o Hibernate
…tenho as seguintes entidades
//ENTIDADE PAI
@SuppressWarnings("serial")
@Entity
@Table(name="DOCUMENTO")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="CD_TIPO", discriminatorType=DiscriminatorType.INTEGER)
public class Documento {
@Id
@Column(name = "id_documento", nullable = false)
@SequenceGenerator(name = "seq_documento", sequenceName = "documento_id_seq", initialValue = 1, allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_documento")
private Long id;
//atributo que diferencia os itens (DOC. INTERNO E DOC. EXTERNO)
@Column(name="CD_TIPO", nullable=false, insertable=false, updatable=false)
private Integer tipo;
@Column(name = "data_criacao", nullable = false)
private Date dataCriacao;
//get's e set's para os atributos
}
ENTIDADE FILHA 1
@SuppressWarnings("serial")
@Entity
@DiscriminatorValue("2")
public class DocumentoExterno extends Documento {
@Column(name="origem", nullable=false)
private String origem;
@Column(name="assunto", nullable=false)
private String assunto;
//get's + set's
}
//ENTIDADE FILHA 2
@SuppressWarnings("serial")
@Entity
@DiscriminatorValue("1")
public class DocumentoInterno extends Documento {
@Column(name="descricao", nullable=false)
private String descricao;
//get's + set's
}
…blz, agora vamoas ao problema , segundo a DOCUMENTAÇÃO com o mapeamento acima todas as infromações são gravadas na mesma tabela mas são tratadas de maneira distinta pelo Hibernate, com isso todas as informações marcadas como NOT-NULL da ENTIDADEFILHA1 não causam impecilho para um INSERT da ENTIDADEFILHA2 certo ??? …não, aqui se tento inserir um DOCUMENTOEXTERNO ele “xia” exigindo as informações NOT-NULL de DOCUMENTOINTERNO e vice e versa !!!
...ta certo isso ou meu mapeamento ta torto ?????
…grato qualquer ajuda !!!