..problema com Herança no Hibernate Annotations

0 respostas
breffo

…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 !!!

Criado 21 de janeiro de 2008
Respostas 0
Participantes 1