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?