Olá,
Estou com problema para mapear o seguinte relacionamento:
Tabela tDepartamento possui o campo id_responsavel(FK) que referencia o campo id(PK) da tabela tPessoa.
@Entity
@Table(name="tDepartamento")
public class Departamento extends AbstractModel {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private long codigo;
@Column(name="nome")
private String nomeDepartamento;
@Column(name="id_responsavel")
private long idResponsavel;
getters e setters
@Entity
@Table(name="tPessoa")
public class Pessoa extends AbstractModel {
@Id
private long id;
private String nome;
private String sobrenome;
private String endereco;
private String cep;
private String telefone;
private String email;
@OneToOne
@JoinColumn(name="id")
@JoinTable(name="tDepartamento", joinColumns = @JoinColumn(name="id_responsavel"))
private Departamento departamento;
getters e setters
Ao listar todos os registros de Pessoa, o hibernate gera as seguintes queries:
Hibernate: select usuario0_.id as id0_, usuario0_.password as password0_, usuario0_.username as username0_ from tUsuario usuario0_
Hibernate: select pessoa0_.id as id1_1_, pessoa0_.cep as cep1_1_, pessoa0_.email as email1_1_, pessoa0_.endereco as endereco1_1_, pessoa0_.nome as nome1_1_, pessoa0_.sobrenome as sobrenome1_1_, pessoa0_.telefone as telefone1_1_, departamen1_.codigo as codigo2_0_, departamen1_.id_responsavel as id1_2_0_, departamen1_.nome as nome2_0_ from tPessoa pessoa0_ left outer join tDepartamento pessoa0_1_ on pessoa0_.id=pessoa0_1_.id_responsavel left outer join tDepartamento departamen1_ on pessoa0_.id=departamen1_.codigo where pessoa0_.id=?
Hibernate: select pessoa0_.id as id1_1_, pessoa0_.cep as cep1_1_, pessoa0_.email as email1_1_, pessoa0_.endereco as endereco1_1_, pessoa0_.nome as nome1_1_, pessoa0_.sobrenome as sobrenome1_1_, pessoa0_.telefone as telefone1_1_, departamen1_.codigo as codigo2_0_, departamen1_.id_responsavel as id1_2_0_, departamen1_.nome as nome2_0_ from tPessoa pessoa0_ left outer join tDepartamento pessoa0_1_ on pessoa0_.id=pessoa0_1_.id_responsavel left outer join tDepartamento departamen1_ on pessoa0_.id=departamen1_.codigo where pessoa0_.id=?
e encontra os registros de Pessoa porém sem a referência para o departamento. o campo departamento vem sempre null.
Alguma luz de como fazer este mapeamento?
Grato