Pessoal, boa tarde!
Tenho uma classe TbEmpresa que herda uma Classe TbPessoa mapeada assim:
@Entity
@Table(name = "tb_empresa", schema = "public")
@PrimaryKeyJoinColumn(name = "cd_pessoa_empresa")
public class TbEmpresa extends TbPessoa implements java.io.Serializable {
private List<TbEmpresaContato> tbEmpresaContatos = new ArrayList<TbEmpresaContato>(0);
@OneToMany(cascade={CascadeType.ALL},orphanRemoval=true)
@JoinColumn(name="cd_pessoa_empresa", referencedColumnName="cd_pessoa_empresa")
public List<TbEmpresaContato> getTbEmpresaContatos() {
return this.tbEmpresaContatos;
}
public void setTbEmpresaContatos(List<TbEmpresaContato> tbEmpresaContatos) {
this.tbEmpresaContatos = tbEmpresaContatos;
}
}
Quero fazer um relacionamento unidirecional da classe TbEmpresa com a TbEmpresaContato, como mostrado no código acima.
Ao tentar inserir um contato, dá o seguinte erro
Entrada em lote 0 insert into public.tb_empresa_contato (de_contato, txt_contato, cd_tp_contato, cd_pessoa_empresa) values ('T', '5', '1', '0') foi abortada. Chame getNextException para ver a causa.
Dá pra ver que o Hibernate não está setando o campo cd_pessoa_empresa. Este campo é PK em TbPessoa, PFK em TbEmpresa e PFK em TbEmpresaContato
Alguém pode me ajudar?
Obrigado.