Problema mapeamento OneToOne

seguinte, tenho um mapeamento 1:1 entre elevador e cabina…
Fiz o mapeamento de duas formas, na primeira forma ele salva todo o elevador mas quando puxo um

elevador do banco ele nao consegue puxar a cabina junto (ela vem como null)

[code]
//elevador.java
@OneToOne
@PrimaryKeyJoinColumn
public Cabina getCabina() {
    return cabina;
}

//cabina.java
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="elevador")
public Elevador getElevador() {
    return elevador;
}
[/code]

No segundo caso, consigo puxar todo o elevador, soh q quando salvo, ele salva apenas o elevador,

nao dah o insert na tabela de cabinas, sendo quando o objeto eh salvo todas as referências estao

corretas.

[code]
//elevador.java
@OneToOne(mappedBy="elevador")
public Cabina getCabina() {
    return cabina;
}

//cabina.java
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="elevador")
public Elevador getElevador() {
    return elevador;
}
[/code]