Hibernate mapping -mapear duas colunas de uma tabela, fazendo referencia a uma coluna de outra

Bom dia, alguém tem alguma dica de como gerar um mapeamento que permita o seguinte:

[code]@Entity
class Couple{
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
int id;
Person husband;
Person wife;
}

@Entity
class Person{
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
int id;
String name;
}[/code]

Como devo anotar husband e wife?

@OneToOne @JoinColumn(name="id", unique=false, nullable=true)
Obrigado

@Entity
class Couple{
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
int id;
@OneToOne
Person husband;
Person wife;
}

Se não me engano é isso que você quer.

Legal jo_user. Era isso que eu pensava, mas como gerar o mapeamento bidirecional também?
Tenho que anotar o id de person apontando para couple de que maneira?

Se utilizo @OneToOne em Person, acicionando uma variavel Couple, na query o hibernate insere um join com uma coluna couple_id que não existe. Devo criar esta coluna?

Quando você diz que o objecto “Couple” possui um objeto “Person”, consequentemente, quando você consultar um Couple, terá o objeto Person, basta colocar no objeto de retorno o “.” e terá um objeto Person. Será que é necessário adicionar o relacionamento bilateral?

Eu gostaria de ter acesso ao Couple quando consultar um Person também.
O couple.husband e couple.wife esta funcionando, mas não estou conseguindo criar o mapeamento para obter husband.getCouple().wife

Quanndo coloco em Person uma anotação OneToOne para couple, a query que o hibernate loga fazendo uma referencia a uma coluna Person.couple_id que não existe na tabela.

public class Person{
@Id
@GeneratedValue
int id;
-Olha eu não sei se poderei ajudar, mas quando coloco GeneratedValue não coloco nenhuma propriedade.

At. Josué

Ok, obrigado Josué. Vou estudar um pouco mais o hibernate e ver se faz alguma diferença.
Valeu!