Return-Path: Delivered-To: apmail-geronimo-user-archive@www.apache.org Received: (qmail 1654 invoked from network); 15 Apr 2008 00:32:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Apr 2008 00:32:25 -0000 Received: (qmail 94339 invoked by uid 500); 15 Apr 2008 00:32:25 -0000 Delivered-To: apmail-geronimo-user-archive@geronimo.apache.org Received: (qmail 94308 invoked by uid 500); 15 Apr 2008 00:32:25 -0000 Mailing-List: contact user-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: user@geronimo.apache.org List-Id: Delivered-To: mailing list user@geronimo.apache.org Received: (qmail 94297 invoked by uid 99); 15 Apr 2008 00:32:25 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Apr 2008 17:32:24 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of learn.koa@gmail.com designates 209.85.146.182 as permitted sender) Received: from [209.85.146.182] (HELO wa-out-1112.google.com) (209.85.146.182) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Apr 2008 00:31:42 +0000 Received: by wa-out-1112.google.com with SMTP id j4so2427383wah.1 for ; Mon, 14 Apr 2008 17:31:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; bh=EVr4ugfkhF2RzjuadAuQoZzpIdU2LwhT62TqQThrQpI=; b=i216yBgRRmq2IGbFCj9k8V3iVzZjt9Jol99ZcPE9cK9/kq4vQfQPpAsn1VwPdaRbtrXC2NeW2oB+1vw7V/e4HIaSL22VRqNVhb4R8ajqsb5hNAOE21scR0Tx7zrHUfIB3rTIXQuP+LbdLAVZL1R/WuMpwVfT4oleaIw9hymwR98= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=hEiqFpnrwJOc0JCrkxdiASa3Y9yhwDUa1UzErW/FprhxgRyZ0gHW/EFYDZ3kMDbSW+ASUj3HKtavABA1sCb3m/S/hdsE5ilCVh+a3R4i6wilc13P5Xo2+jm3dVF2SFZ7G+vr2eIDo0Einl56Uzte8lvgNPerHi/7gUH1amsDqMQ= Received: by 10.115.50.5 with SMTP id c5mr4462045wak.167.1208219514897; Mon, 14 Apr 2008 17:31:54 -0700 (PDT) Received: by 10.114.154.17 with HTTP; Mon, 14 Apr 2008 17:31:54 -0700 (PDT) Message-ID: Date: Tue, 15 Apr 2008 08:31:54 +0800 From: CG To: user@geronimo.apache.org Subject: JPQL named parameter does not work MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Virus-Checked: Checked by ClamAV on apache.org Hi all , I have experienced this , where the createQuery function using named parameter cause parsing problem System.out.println("List some materials"); List someMaterials = (List)em.createQuery("SELECT m FROM Material m WHERE m.mat_Description=:desc").setParameter("desc", "Raw Material").getResultList(); I have tried with positional parameter, replacing :desc with ?1 and it works , so I wonder is the openjpa version built-in in geronimo 2.1 does not support named parameter ? Has anybody manage to get named parameter works ? I do not try the NameQuery() method yet , if someone has tried maybe can share with us whether it works or not. Thanks. CG Error message detail ================================= Exception in thread "main" javax.ejb.EJBException: The bean encountered a non-application exception.; nested exception is: org.apache.openjpa.persistence.ArgumentException: An error occurred while parsing the query filter 'SELECT m FROM Material m WHERE m.mat_Description=:desc'. Error message: org.apache.openjpa.kernel.jpql.ParseException: Encountered "m . mat_Description = : desc" at character 32, but expected: ["(", "*", "+", "-", ".", "/", ":", "<", "<=", "<>", "=", ">", ">=", "?", "ABS", "ALL", "AND", "ANY", "AS", "ASC", "AVG", "BETWEEN", "BOTH", "BY", "CONCAT", "COUNT", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "DELETE", "DESC", "DISTINCT", "EMPTY", "ESCAPE", "EXISTS", "FETCH", "FROM", "GROUP", "HAVING", "IN", "INNER", "IS", "JOIN", "LEADING", "LEFT", "LENGTH", "LIKE", "LOCATE", "LOWER", "MAX", "MEMBER", "MIN", "MOD", "NEW", "NOT", "NULL", "OBJECT", "OF", "OR", "ORDER", "OUTER", "SELECT", "SET", "SIZE", "SOME", "SQRT", "SUBSTRING", "SUM", "TRAILING", "TRIM", "UPDATE", "UPPER", "WHERE", , , , , ]. at org.apache.openejb.client.EJBInvocationHandler.convertException(EJBInvocationHandler.java:210) at org.apache.openejb.client.EJBObjectHandler._invoke(EJBObjectHandler.java:157) at org.apache.openejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:116) at org.apache.openejb.client.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:52) at $Proxy0.testMaterial(Unknown Source) at test.com.quesofttech.FirstEJB3TutorialClient.main(FirstEJB3TutorialClient.java:51) Caused by: org.apache.openjpa.persistence.ArgumentException: An error occurred while parsing the query filter 'SELECT m FROM Material m WHERE m.mat_Description=:desc'. Error message: org.apache.openjpa.kernel.jpql.ParseException: Encountered "m . mat_Description = : desc" at character 32, but expected: ["(", "*", "+", "-", ".", "/", ":", "<", "<=", "<>", "=", ">", ">=", "?", "ABS", "ALL", "AND", "ANY", "AS", "ASC", "AVG", "BETWEEN", "BOTH", "BY", "CONCAT", "COUNT", "CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "DELETE", "DESC", "DISTINCT", "EMPTY", "ESCAPE", "EXISTS", "FETCH", "FROM", "GROUP", "HAVING", "IN", "INNER", "IS", "JOIN", "LEADING", "LEFT", "LENGTH", "LIKE", "LOCATE", "LOWER", "MAX", "MEMBER", "MIN", "MOD", "NEW", "NOT", "NULL", "OBJECT", "OF", "OR", "ORDER", "OUTER", "SELECT", "SET", "SIZE", "SOME", "SQRT", "SUBSTRING", "SUM", "TRAILING", "TRIM", "UPDATE", "UPPER", "WHERE", , , , , ]. at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.parse(JPQLExpressionBuilder.java:1666) at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.(JPQLExpressionBuilder.java:1646) at org.apache.openjpa.kernel.jpql.JPQLParser.parse(JPQLParser.java:47) at org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(ExpressionStoreQuery.java:144) at org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:651) at org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:633) at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:599) at org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:661) at org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1487) at org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:123) at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:227) at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:277) at com.quesofttech.session.MaterialTestBean.testMaterial(MaterialTestBean.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:146) at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:129) at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:67) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:210) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) at org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:214) at org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:121) at org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:164) at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:122) at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:84) at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:60) at org.apache.openejb.server.ServiceLogger.service(ServiceLogger.java:76) at org.apache.openejb.server.ServiceAccessController.service(ServiceAccessController.java:55) at org.apache.openejb.server.ServiceDaemon$1.run(ServiceDaemon.java:118) at java.lang.Thread.run(Thread.java:619)