JPA não retorna relacionamentos

Pessoal,

Estou com um problema ao recuperar os dados no JPA.

Tenho um classe que relaciona com outra classe. Segue abaixo:

Classe “PagamentoMaterial” que contem um relacionamento com Classe “Apostila”

    .
    .
    @JoinColumn(name="ChaveApostila", nullable=true, insertable=false, updatable=false)
    @OneToOne()
    private Apostila oApostila;
    .
    .

Classe “Apostila”

    @Entity
    @Table ( name = "Apostilas" )
    public class Apostila implements Serializable {

        @Id
        @Column(name = "ChaveApostila", nullable = false)
        private String chaveApostila;
        @Column(name = "Nome", nullable = false)
        private String descricao;
        @Column(name = "valor", nullable = false)
        private Double valor;
        @Column(name = "Requerimento", nullable = false)
        private Integer requerimento;
//gets e sets

Basicamente, quando preciso recuperar os dados faço assim:

        EntityManager em = null;
        try {
            em = HibernateJPA.getEntityManager();
            em.getTransaction().begin();
            return (List<PagamentoMaterial>) em.createQuery("SELECT e from PagamentoMaterial e ").getResultList();
           .
           .

Beleza?

Isso funciona perfeitamente, o grande problema é que, quando faço a conexão com o banco de dados e executo o metodo que retorna esses dados, tudo vem prefeito. [color=blue] Porém quando eu gravo um novo registro de PagamentoMaterial no banco de dados, e após isso eu recupero os dados novamente, utilizando o método acima, ele me retorna todos os registros corretos, exceto o que acabei de incluir. O que acabei de incluir, ele me retorna sem o relacionamento com Apostila, o campo vem null. Se fecho o sistema e abro novamente, vem tudo correto (inclusive os ultimos gravados). [size=16] [/size][/color]

Alguem tem alguma idéia de que possa ser?

Provavelmente o objeto PagamentoMaterial está em cache no hibernate. Você pode atribuir manualmente, ou dao.clear() (o que não é recomendado).

Abraços.