[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Invalid query key [***] in expression

Could you try to add the following persistence unit property:

eclipselink.jpql.parser=org.eclipse.persistence.queries.ANTLRQueryBuilder

On 15/11/2012 3:54 AM, Developer Account wrote:
Hi Tom,

/[#|2012-11-13T22:32:19.945-0800|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=21;_ThreadName=Thread-2;|Exception
[EclipseLink-6015] (Eclipse Persistence Services - 2.5.0.v20121110-3770ab2):
org.eclipse.persistence.exceptions.QueryException
Exception Description: *Invalid query key [report] in expression*.
Query: ReadAllQuery(name="CreatedReport.findAllByTypeId"
referenceClass=CreatedReport jpql="SELECT c FROM CreatedReport c where
c.report.reportType.id = :typeId")|#]

[#|2012-11-13T22:32:19.945-0800|INFO|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=21;_ThreadName=Thread-2;|PWC1412:
WebModule[null] ServletContext.log():null|#]

/
these are the only other stack traces, i thought it is a mapping issue.

it was working when i was using *sun-glassfish 3.0.1* and *eclipselink 2.3* with
a JTA persistence-unit,
all i changed was upgrading sun-glassfish, eclipselink and changing the
transaction-type to RESOURCE_LOCAL for multitenancy features so the transactions
are managed by the application not the container anymore and
I am using *EM level Table Per Tenant Multitenancy*

here is how i create the EntityManager

/private EntityManager getEntitymanager() {
         HashMap properties = new HashMap();
         properties.put(EntityManagerProperties.*MULTITENANT_PROPERTY_DEFAULT*,
"tenant1");

         EntityManagerFactory emf =
PersistenceManagerEMF.getInstance().getEntityManagerFactory();
         // Persistence.createEntityManagerFactory("multi-tenant-pu");
         return emf.createEntityManager(properties);
}/

i thought there was some changes around parsing the @NamedQueries lately because
i think it wouldn't be deployed if the problem was sun-glassfish.

I get the error when this line is being executed
/Query query = em.createNamedQuery("CreatedReport.findAllByTypeId");
/

-Justin


On 12-11-14 04:24 AM, Tom Ware wrote:
Hi,

  Is there more to the stack trace?  I don't see any EclipseLink classes in
the stack.  In the absence of org.eclipse.persistence classes in the stack, I
think it is more likely the issue is somewhere else.

-Tom

On 14/11/2012 2:13 AM, Developer Account wrote:
Hi guys,

I am using the latest *eclipselink* nightly build (2.5.0 ...)
and am getting a *NullPointerException* when i try to run a @*NamedQuery* which
joins more than one table

here is the question:

*_/SELECT c FROM CreatedReport c where c.report.reportType.id = :typeId/_**__*

and here are the POJOs

/@Entity
@Table(name = "created_report")
@Multitenant(MultitenantType.TABLE_PER_TENANT)
@TenantTableDiscriminator(type= TenantTableDiscriminatorType.SCHEMA,
contextProperty= "eclipselink.tenant-id")
@NamedQueries({
     @NamedQuery(name = "///CreatedReport/.findAllByTypeId",
         query = "SELECT c FROM ///CreatedReport/ c where c.report.reportType.id
= :typeId"),
})
public class *CreatedReport* implements Serializable {

     private static final long serialVersionUID = 1L;
     @Id
     @Basic(optional = false)
     @GeneratedValue(strategy=GenerationType.IDENTITY)
     @Column(name = "id")
     private Integer *id*;

     @Basic(optional = false)
     @Column(name = "date")
     @Temporal(TemporalType.TIMESTAMP)
     private Date *date*;

     @JoinColumn(name = "report_id", referencedColumnName = "id")
     @ManyToOne(optional = false)
     private Report *report*;

     ... getters and setters

}

@Entity
@Table(name = "report")
@Multitenant(MultitenantType.TABLE_PER_TENANT)
@TenantTableDiscriminator(type= TenantTableDiscriminatorType.SCHEMA,
contextProperty= "eclipselink.tenant-id")
public class *Report* implements Serializable {

     private static final long serialVersionUID = 1L;
     @Id
     @Basic(optional = false)
     @GeneratedValue(strategy=GenerationType.IDENTITY)
     @Column(name = "id")
     private Integer *id*;

     @Column(name = "name")
     private String *name*;

     @XmlTransient
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "report")
     private List<CreatedReport> *createdReports*;

     @XmlTransient
     @JoinColumn(name = "report_type_id", referencedColumnName = "id")
     @ManyToOne(optional = false)
     private ReportType *reportType*;

     ... getters and setters

}////

@Entity
@Table(name = "report_type")
@Multitenant(MultitenantType.TABLE_PER_TENANT)
@TenantTableDiscriminator(type= TenantTableDiscriminatorType.SCHEMA,
contextProperty= "eclipselink.tenant-id")
public class *ReportType* implements Serializable {
     private static final long serialVersionUID = 1L;
     @Id
     @Basic(optional = false)
     @GeneratedValue(strategy=GenerationType.IDENTITY)
     @Column(name = "id")
     private Integer *id*;

     @Basic(optional = false)
     @Column(name = "name")
     private String *name*;

     @OneToMany(cascade = CascadeType.ALL, mappedBy = "reportType")
     private List<Report> *reportCollection*;

     @OneToMany(cascade = CascadeType.ALL, mappedBy = "reportType")
     private List<ReportArgument> *reportArguments*;

     ... getters and setters

}

/and here is the EJB /call//

public List<CreatedReport> findAllByTypeId(Integer typeId) {
         List<///CreatedReport/> reportsByTypeId = null;
         try {
             em = getEntitymanager();    // create the tenant based EM
             tx = em.getTransaction();
             tx.begin();

             Query query =
em.createNamedQuery("//*/CreatedReport/**.findAllByTypeId*");

             query.setParameter("typeId", typeId);

             reportsByTypeId = (List<///CreatedReport/>) query.getResultList();
         } catch(Exception ex) {
             tx.rollback();
             System.out.println(ex.toString());
         } finally {
             if (em != null && em.isOpen()) {
                 em.close();
             }
         }

         return reportsByTypeId;
     }

/when it is trying to create the query, it gets this error :/

java.lang.NullPointerException
         at java.util.Collections.reverse(Collections.java:381)
         at
com.sun.rave.web.ui.appbase.servlet.LifecycleListener.fireInit(LifecycleListener.java:633)

         at
com.sun.rave.web.ui.appbase.servlet.LifecycleListener.attributeAdded(LifecycleListener.java:483)

         at
org.apache.catalina.connector.Request.setAttribute(Request.java:1716)
         at
org.apache.catalina.connector.RequestFacade.setAttribute(RequestFacade.java:570)
         at
javax.servlet.ServletRequestWrapper.setAttribute(ServletRequestWrapper.java:283)
         at com.sun.faces.context.RequestMap.put(RequestMap.java:101)
         at com.sun.faces.context.RequestMap.put(RequestMap.java:54)
         at
com.sun.faces.mgbean.BeanManager$ScopeManager$RequestScopeHandler.handle(BeanManager.java:527)

         at
com.sun.faces.mgbean.BeanManager$ScopeManager.pushToScope(BeanManager.java:458)
         at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:410)
         at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
         at
com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)

         at
com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
         at
com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)

         at
com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)

         at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:103)
         at
com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224)
         at
com.sun.faces.application.ValueBindingValueExpressionAdapter.getValue(ValueBindingValueExpressionAdapter.java:113)

         at
com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.pageBean(ViewHandlerImpl.java:710)

         at
com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.pageBean(ViewHandlerImpl.java:685)

         at
com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:284)

         at
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)

         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
         at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
         at
com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.render(PartialTraversalLifecycle.java:106)

         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
         at
org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
         at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)

         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

         at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267)
         at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

         at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

         at
org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:40)

         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

         at
org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:50)

         at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

         at
org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:167)

         at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

         at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

         at
org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:104)

         at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)

         at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)

         at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

         at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
         at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
         at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
         at
org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
         at
com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
         at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
         at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
         at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

         at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

         at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
         at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
         at
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
         at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

         at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
         at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
         at
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

         at
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
         at java.lang.Thread.run(Thread.java:679)


/could this be a bug in eclipselink or am i missing something ?/

/thanks in advance

Justin/
/


_______________________________________________ eclipselink-users mailing list eclipselink-users@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/eclipselink-users

_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users



_______________________________________________ eclipselink-users mailing list eclipselink-users@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/eclipselink-users