Olá Galera, Sou novo aqui no fórum e novo também com programação Java Avançada.
O que está acontecendo é o seguinte tenho 3 Classes com Herança dividas em 2 Tabelas estou usando Hibernate em um BD MySQL estou usando annotations para mapear uma coluna de discriminador (PESSOA_TYPE) só que essa coluna não é preenchida fica em branco! Quando não dá um erro no SQL e reclama que não há valor default para PESSOA_TYPE
segue meu código.
Estou Omitindo getters e setters e os contrutores
@Entity
@Table(name="PESSOA")
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="PESSOA_TYPE",discriminatorType=DiscriminatorType.STRING,length=30)
@DiscriminatorValue("Pessoa")
public class Pessoa implements Serializable {
@Id
@GeneratedValue
protected Long id;
protected String nome;
@Embedded
protected Endereco endereco;
@Embedded
@AttributeOverrides({
@AttributeOverride(name="cod_pais", column=@Column(name="COD_PAIS")),
@AttributeOverride(name="cod_tel_cidade", column=@Column(name="COD_TEL_CIDADE")),
@AttributeOverride(name="telefone", column=@Column(name="TELEFONE")),
})
protected Telefone telefone;
protected String email;
@MappedSuperclass
public abstract class PessoaFisica extends Pessoa {
protected String cpf;
protected String identidade;
}
@Entity
@Table(name="CLIENTEFISICO")
@DiscriminatorValue("CliFisico")
public class ClienteFisico extends PessoaFisica implements Cliente {}
Classe para testar se está persistindo estou usando hibernate Entity manager
// Start EntityManagerFactory
EntityManagerFactory emf =Persistence.createEntityManagerFactory("prisma");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
Telefone tel=new Telefone("55","21","3155-6565");
Endereco end=new Endereco("rua 2",28,"Rio de Janeiro","RJ","Sumare","21046-386");
ClienteFisico cf=new ClienteFisico("Wayne9",tel,end,"wayne@local.com","121201212","12154112-9");
em.persist(cf);
tx.commit();
em.close();