users@glassfish.java.net

Re: Problem with Persistence Engine : NamedQuery Not Found

From: Marina Vatkina <Marina.Vatkina_at_Sun.COM>
Date: Mon, 03 Nov 2008 14:14:24 -0800

Are you injecting EM into a SLSB or in a helper class? What is the structure of
your app?

thanks,
-marina

Sébastien Stormacq wrote:
> Hello,
>
> Using GF 2.1 (9.1_02 b04)
>
> I created an Entity Bean and Persistence Unit in an EJB project
>
> When I am calling
>
> em.createNamedQuery("MyEntity.findAll")
>
> from a Stateless EJB (exposed as a Web Service) with a valid query
> name, I receive :
>
> java.lang.IllegalArgumentException: NamedQuery of name:
> MyEntity.findAll not found.
> at oracle .toplink .essentials .internal
> .ejb.cmp3.base.EJBQueryImpl.getDatabaseQuery(EJBQueryImpl.java:422)
> at oracle .toplink .essentials .internal
> .ejb.cmp3.base.EJBQueryImpl.setAsSQLReadQuery(EJBQueryImpl.java:136)
> at oracle .toplink .essentials
> .internal.ejb.cmp3.base.EJBQueryImpl.getResultList(EJBQueryImpl.java: 464)
> at
> com.sun.poc.efa.MessageValidation.<init>(MessageValidation.java:61)
>
> Using the exact same code in a POJO, outside of the application server
> container works as expected.
> The GlassFish version uses JTA while the POJO version uses RESOURCE_LOCAL
>
> Another issue, probably linked to this one : resource injection is not
> working for me :
>
> @PersistenceContext
> private EntityManager em;
>
> em is null when I first use it.
> I worked around by using :
>
> EntityManagerFactory emf =
> Persistence.createEntityManagerFactory("myPU");
> EntityManager em = emf.createEntityManager();
> em.clear();
>
> Any idea ? Thanks
>
>
> ---
> Sébastien Stormacq
> Senior Software Architect
> GSS Software Practice,
> Sun Microsystems Luxembourg
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>