Por que o hibernate executa duas consultas para carregar antecipadamente uma associação bidirecional @OneToOne?

eu tenho a entidade A que tem uma entidade B e B tem um A com associação bidirecional @OneToOne.

Agora, quando encontro todos os registros A, o hibernate executa duas consultas com uma junção externa esquerda em B, algo como isto:

select a.id, a.id_b, a.field1, b.id, b.field1 from A as a, B as b left outer join b ON b.id=a.id_b;
select a.id, a.id_b, a.field1, b.id, b.field1 from A as a, B as b left outer join b ON b.id=a.id_b WHERE b.id=?

A primeira consulta carrega os campos A e B e está tudo bem, mas por que executar a segunda consulta para recarregar A? Eu acho que essa consulta carrega o conteúdo A em B, mas esse A é obviamente o A que contém B ... então já está carregado com a primeira consulta, não é verdade?

- EDITAR -

Entidade A:

@Entity
public class A implements Serializable{
    // id and other ecc ecc
    @OneToOne
    @JoinColumn(name="id_b")
    B b;
}

Entidade B:

@Entity
public class B implements Serializable{
    // id and other ecc ecc
    @OneToOne(mappedBy="b")
    A a;
}

Esta é a situação, e um findAll on A precisa de duas consultas ... por quê?

questionAnswers(2)

yourAnswerToTheQuestion