JPA - entityManager perdendo escopo?

0 respostas
G

Caros, estou com o seguinte problema:

Tenho dois ManagedBean:

Configuracao
ConfiguracaoCompAdic

tenho uma classe de acesso ao banco para cada uma delas, implementado no pattern DAO:

ConfiguracaoDAO
ConfiguracaoCompAdicDAO

Nas duas classes, possuo a seguinte chamada:

try {
            EntityManager em = MyHibernateJPA.getEntityManager();
            em.getTransaction().begin();
            switch (operacao) {
                case INCLUIR:
                    em.persist(obj);        //Transformando o objeto transiente em um objeto persistente no banco de dados

Minha classe MyHibernateJPA está dessa forma:

public class MyHibernateJPA  {

    private static final EntityManager entityManager;

    static {

        entityManager  = Persistence.createEntityManagerFactory("myBeansPU", new HashMap<String, String>() {
            private static final long serialVersionUID = 1L;
            {
                put("javax.persistence.jdbc.url", "jdbc:mysql://localhost:3306/bancoteste");
                put("javax.persistence.jdbc.password", "senha");
                put("javax.persistence.jdbc.driver", "com.mysql.jdbc.Driver");
                put("javax.persistence.jdbc.user", "usuario");
            }
        }).createEntityManager();

    }

    public static EntityManager getEntityManager() throws Exception {
        return entityManager;
    }

O problema é que, se no meu xhtml eu executo o seguinte:

<label>#{configuracao.empresa}</label>

Automaticamente ele exibe o item persistido no campo empresa, da minha tabela Configuracao.

Porém, se logo abaixo eu inserir:

<label>#{configuracao.empresa}</label>
                    <label>#{configuracaoCompAdic.site}</label>

Ele me retorna um erro:

Caused by: java.lang.NullPointerException
        at org.eclipse.persistence.internal.jpa.EntityManagerImpl.getActivePersistenceContext(EntityManagerImpl.java:1574)
        at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.begin(EntityTransactionImpl.java:49)

Aparentemente, o entityManager não está mais ativo, é isso? Porque ele não está ativo, se eu nenhum momento estou dando o comando para fechar o mesmo?

Criado 20 de janeiro de 2011
Respostas 0
Participantes 1