persistence@glassfish.java.net

Re: NullPointerException

From: Michael Bar-Sinai <mich.barsinai_at_gmail.com>
Date: Thu, 22 Oct 2009 22:19:16 +0200

You can get the injected object using an EJB, and then manually inject
them to the DAO:
(This is from the top of my head, no JEE env here):

@Local
public class DaoResourceProvider implements DaoResourceProviderLocal {

@PersisteceUnit(unitName="citespacePU")
EntityManagerFactory emf;

...
public BaseDAO getBaseDao() {
        BaseDAO retVal = new BaseDAO();
        retVal.setEmf( emf );
        return retVal;
}

...


--Michael



On 22 Oct, 2009, at 10:07 PM, Roan Brasil Monteiro wrote:

> Chapter 24?
>
> 2009/10/22 Roan Brasil Monteiro <roanbrasil_at_gmail.com>
> Just a part. I have a JEE aplication and I would like to split the
> persistence part from my JPA class. Do you have some idea? I will
> take a look on the documentation.
>
>
> 2009/10/22 Marina Vatkina <Marina.Vatkina_at_sun.com>
> It depends on what you are trying to achieve in which type of an
> application. Did you look at the JPA cjapter in Java EE 5 Tutorial?
>
> Roan Brasil Monteiro wrote:
> How should I resolve it? How should be my class? I am learning and I
> am trying to put the persistence part in DAO class.
>
> 2009/10/22 Marina Vatkina <Marina.Vatkina_at_sun.com <mailto:Marina.Vatkina_at_sun.com
> >>
>
>
> You can't inject anything in a class that is neither a Main class,
> nor a JavaEE component.
>
> -marina
>
>
> Roan Brasil Monteiro wrote:
>
> I have a class BaseDAO as bellow and I am getting
> NullPointerException on EntityManager em =
> emf.createEntityManager(); line from BaseDAO class, Can someone
> help me how to fix it?
>
> public class BaseDAO<T> {
>
> @PersistenceUnit(unitName = "citespacePU")
> EntityManagerFactory emf;
> public List<T> ListCountry(){
> EntityManager em = emf.createEntityManager();
> try{
> Query q = em.createQuery("Select c from Country c
> ");
> List<Country> c =
> q.getResultList(); return (List<T>) c;
> }finally{
> if (em != null && em.isOpen()) {
> em.close();
> }
> } }
>
>
> }
>
> I have my Jersey resource class:
>
> @Path("/user/")
> public class UserResource {
> @GET
> @Produces("text/plain")
> public String registerUser(){
> BaseDAO<Country> countryDAO = new
> BaseDAO<Country>();
> List<Country> c = countryDAO.ListCountry();
> String y = "";
> for(Country x: c){
> y = y + ":" +x.getName();
> } return
> "[Country List]:"+y;
>
> }
>
> -- Atenciosamente,
>
> Roan Brasil Monteiro
> http://roanbrasil.wordpress.com/
>
>
>
>
>
> --
> Atenciosamente,
>
> Roan Brasil Monteiro
> http://roanbrasil.wordpress.com/
>
>
>
>
> --
> Atenciosamente,
>
> Roan Brasil Monteiro
> http://roanbrasil.wordpress.com/
>
>
>
> --
> Atenciosamente,
>
> Roan Brasil Monteiro
> http://roanbrasil.wordpress.com/