Dúvida Relacionamento JPA OneToOne [RESOLVIDO]

Boa tarde, eu tenho uma dúvida quando ao carregamento das classes em relacionamentos JPA, exemplo eu tenho duas Classes:[code] */
@Entity
@Table(name = “requisicoes”)
public class Requisicao implements java.io.Serializable
{
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

@Column(nullable = false, name = "data_criacao")
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date dataCriacao = new Date();

@Valid
@NotNull(message = "Preencha o campo Destinatário.")
@JoinColumn(nullable = false, name = "destinatario_id")
@ManyToOne(optional = false)
private Funcionario destinatario;

@Valid
@JoinColumn(nullable = false, name = "requisitante_id")
@ManyToOne(optional = false)
private Funcionario requisitante;

@JoinColumn(nullable = false, name = "requisicao_status_id")
@ManyToOne(optional = false)
private RequisicaoStatus status;

@NotEmpty(message = "Preencha o campo Descrição.")
@Column(nullable = false, length = 5000)
private String descricao;

@Enumerated(EnumType.STRING)
@Column(nullable = false, length = 50)
private RequisicaoClassificacaoType classificacao = RequisicaoClassificacaoType.NAO_CLASSIFICADA;

@Column(name = "data_classificacao")
@Temporal(javax.persistence.TemporalType.DATE)
private Date dataClassificacao;

@Valid
@JoinColumn(name = "responsavel_classificacao_id")
@ManyToOne(optional = false)
private Funcionario responsavelClassificacao;

@Column(length = 5000)
private String resposta;

@Column(name = "data_conclusao")
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date dataConclusao;

@JoinColumn(name = "responsavel_conclusao_id")
@ManyToOne(optional = false)
private Funcionario responsavelConclusao;

@Column(length = 200, name = "requisicao_arquivo")
private String requisicaoArquivo;

@OneToOne(mappedBy = "requisicao")
private RequisicaoAnalise analise;

@OneToOne(mappedBy = "requisicao", optional = false, fetch = FetchType.EAGER)
private RequisicaoOrdemServico ordemDeServico;

@OneToMany(mappedBy = "requisicao", orphanRemoval = true)
private List<RequisicaoInteracao> interacoes = new LinkedList<RequisicaoInteracao>();

public Integer getId()
{
    return id;
}

public void setId(Integer id)
{
    this.id = id;
}

public Date getDataCriacao()
{
    return dataCriacao;
}

public void setDataCriacao(Date dataCriacao)
{
    this.dataCriacao = dataCriacao;
}

public Funcionario getDestinatario()
{
    return destinatario;
}

public void setDestinatario(Funcionario destinatario)
{
    this.destinatario = destinatario;
}

public Funcionario getRequisitante()
{
    return requisitante;
}

public void setRequisitante(Funcionario requisitante)
{
    this.requisitante = requisitante;
}

public RequisicaoStatus getStatus()
{
    return status;
}

public void setStatus(RequisicaoStatus status)
{
    this.status = status;
}

public String getDescricao()
{
    return descricao;
}

public void setDescricao(String descricao)
{
    this.descricao = descricao;
}

public RequisicaoClassificacaoType getClassificacao()
{
    return classificacao;
}

public void setClassificacao(RequisicaoClassificacaoType classificacao)
{
    this.classificacao = classificacao;
}

public Date getDataClassificacao()
{
    return dataClassificacao;
}

public void setDataClassificacao(Date dataClassificacao)
{
    this.dataClassificacao = dataClassificacao;
}

public Funcionario getResponsavelClassificacao()
{
    return responsavelClassificacao;
}

public void setResponsavelClassificacao(Funcionario responsavelClassificacao)
{
    this.responsavelClassificacao = responsavelClassificacao;
}

public String getResposta()
{
    return resposta;
}

public void setResposta(String resposta)
{
    this.resposta = resposta;
}

public Date getDataConclusao()
{
    return dataConclusao;
}

public void setDataConclusao(Date dataConclusao)
{
    this.dataConclusao = dataConclusao;
}

public Funcionario getResponsavelConclusao()
{
    return responsavelConclusao;
}

public void setResponsavelConclusao(Funcionario responsavelConclusao)
{
    this.responsavelConclusao = responsavelConclusao;
}

public String getRequisicaoArquivo()
{
    return requisicaoArquivo;
}

public void setRequisicaoArquivo(String requisicaoArquivo)
{
    this.requisicaoArquivo = requisicaoArquivo;
}

public RequisicaoAnalise getAnalise()
{
    return analise;
}

public void setAnalise(RequisicaoAnalise analise)
{
    this.analise = analise;
}

public RequisicaoOrdemServico getOrdemDeServico()
{
    return ordemDeServico;
}

public void setOrdemDeServico(RequisicaoOrdemServico ordemDeServico)
{
    this.ordemDeServico = ordemDeServico;
}

//
// public List getOrdemServicos()
// {
// return ordemServicos;
// }
//
// public void setOrdemServicos(List ordemServicos)
// {
// this.ordemServicos = ordemServicos;
// }
public List getInteracoes()
{
return interacoes;
}

public void setInteracoes(List<RequisicaoInteracao> interacoes)
{
    this.interacoes = interacoes;
}

public boolean classificacaoDuvida()
{
    return getClassificacao().equals(RequisicaoClassificacaoType.DUVIDA);
}

// public RequisicaoOrdemServico getOrdemDeServico()
// {
// if(ordemServicos != null)
// {
// RequisicaoOrdemServico os = new RequisicaoOrdemServico();
//
// for(RequisicaoOrdemServico requisicaoOrdemServico : ordemServicos)
// {
//// System.out.println(requisicaoOrdemServico.getId());
// os = requisicaoOrdemServico;
// }
// return os;
// }
// return null;
// }
@Override
public int hashCode()
{
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}

@Override
public boolean equals(Object object)
{
    // TODO: Warning - this method won't work in the case the id fields are not set
    if(!(object instanceof Requisicao))
    {
        return false;
    }
    Requisicao other = (Requisicao)object;
    if((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id)))
    {
        return false;
    }
    return true;
}

@Override
public String toString()
{
    return "br.com.financeiroa2.model.entities.Requisicao[ id=" + id + " ]";
}

}
[/code]

@Entity
@Table(name = "requisicoes_ordens_servicos")
public class RequisicaoOrdemServico implements java.io.Serializable
{
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(nullable = false, name = "data_criacao")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataCriacao = new Date();

    @JoinColumn(nullable = false, name = "requisicao_id", unique = true)
    @OneToOne(optional = false)
    private Requisicao requisicao;

    @JoinColumn(name = "responsavel_id")
    @ManyToOne(optional = false)
    private Funcionario responsavel;

    @Column(name = "data_inicio")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataInicio;

    @Column(length = 5000)
    private String alteracoes;

    @Column(name = "tempo_desenvolvimento")
    private short tempoDesenvolvimento;

    @Column(name = "data_conclusao")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataConclusao;

    public RequisicaoOrdemServico()
    {
    }

    public RequisicaoOrdemServico(Requisicao requisicao, Funcionario responsavel)
    {
        this.requisicao = requisicao;
        this.responsavel = responsavel;
    }

    public Integer getId()
    {
        return id;
    }

    public void setId(Integer id)
    {
        this.id = id;
    }

    public Date getDataCriacao()
    {
        return dataCriacao;
    }

    public void setDataCriacao(Date dataCriacao)
    {
        this.dataCriacao = dataCriacao;
    }

    public Requisicao getRequisicao()
    {
        return requisicao;
    }

    public void setRequisicao(Requisicao requisicao)
    {
        this.requisicao = requisicao;
    }

    public Funcionario getResponsavel()
    {
        return responsavel;
    }

    public void setResponsavel(Funcionario responsavel)
    {
        this.responsavel = responsavel;
    }

    public Date getDataInicio()
    {
        return dataInicio;
    }

    public void setDataInicio(Date dataInicio)
    {
        this.dataInicio = dataInicio;
    }

    public String getAlteracoes()
    {
        return alteracoes;
    }

    public void setAlteracoes(String alteracoes)
    {
        this.alteracoes = alteracoes;
    }

    public short getTempoDesenvolvimento()
    {
        return tempoDesenvolvimento;
    }

    public void setTempoDesenvolvimento(short tempoDesenvolvimento)
    {
        this.tempoDesenvolvimento = tempoDesenvolvimento;
    }

    public Date getDataConclusao()
    {
        return dataConclusao;
    }

    public void setDataConclusao(Date dataConclusao)
    {
        this.dataConclusao = dataConclusao;
    }

    @Override
    public int hashCode()
    {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object)
    {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if(!(object instanceof RequisicaoOrdemServico))
        {
            return false;
        }
        RequisicaoOrdemServico other = (RequisicaoOrdemServico)object;
        if((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id)))
        {
            return false;
        }
        return true;
    }

    @Override
    public String toString()
    {
        return "br.com.financeiroa2.model.entities.RequisicaoOrdemServico[ id=" + id + " ]";
    }
}

A minha dúvida é depois que eu salvar uma RequisicaoOrdermServico e recuperar uma Requisicao a minha ordem de serviço não deveria vir junto automaticamente por causa da anotação @OneToOne(mappedBy = "requisicao", optional = false, fetch = FetchType.EAGER)?

Eu consegui resolver da seguinte maneira: antes de salvar minha ordemdeServiço executei requisicao.setOrdemDeServico(requisicaoOrdemServico); e funcionou tranquilamente sem eu precisar percorrer a lista fazendo a busda para as ordens de serviços.