Loja Virtual completa

Java

17/03/2011

Olá pessoal,
Estou com um problema ao instanciar EntityManager, esta retornando nulo, alguém passou por esse problema, segue o código :
public abstract class BasicSessionBean implements Serializable{
    private static final long serialVersionUID = 1L;
    @PersistenceContext    private EntityManager em;
    public BasicSessionBean(){            }
    public EntityManager getEm() {        return em;    }
....Quando vou utilizar o método abaixo o "em" ele está null
 private Query createQuery(String query, Object[] values) {        Query qr = em.createQuery(query);        if (values != null) {            for (int i = 0; i < values.length; i++) {                Object object = values[i];                qr.setParameter(i + 1, object);            }        }        return qr;    }


Obs. O arquivo persistence.xml existe.
E quando eu escrevo o codigo da seguinte forma, funciona :
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("EcommerceJPAPU");    @PersistenceContext    private EntityManager em = emf.createEntityManager();
Só que não executa as ações do "em" query, persist....

Valeu!Sou guerreiro, desistir jamais...
Noésio Souza

Noésio Souza

Curtidas 0

Respostas

Davi Costa

Davi Costa

17/03/2011

Tem que conferir cuidadosamente o persistence.xml.
E para sua segunda parte do código, não faz sentido instancar um objeto e tentar injetá-lo:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("EcommerceJPAPU");    @PersistenceContext    private EntityManager em = emf.createEntityManager();

Usamos esse annotation justamente para o container gerenciar esses objetos  e não termos que nos preocupar com ele.

Att Davi


GOSTEI 0
Dyego Carmo

Dyego Carmo

17/03/2011

Opa !
Funcionou  ?
GOSTEI 0
Noésio Souza

Noésio Souza

17/03/2011

Funcionou,
Faltava :
    public CategoryFace(){        setSelectedBean(new Category());    }
Por isso dava null.
Valeu!
GOSTEI 0
Davi Costa

Davi Costa

17/03/2011

Beleza cara show de bola.
 Caso tenha resolvido, favor fechar a pendência.

att Davi
GOSTEI 0
POSTAR