Return-Path: Delivered-To: apmail-geronimo-user-archive@www.apache.org Received: (qmail 34706 invoked from network); 15 Apr 2008 13:55:53 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Apr 2008 13:55:53 -0000 Received: (qmail 26413 invoked by uid 500); 15 Apr 2008 13:55:51 -0000 Delivered-To: apmail-geronimo-user-archive@geronimo.apache.org Received: (qmail 26388 invoked by uid 500); 15 Apr 2008 13:55:51 -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 26375 invoked by uid 99); 15 Apr 2008 13:55:51 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Apr 2008 06:55:51 -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 jaydmchugh@gmail.com designates 74.125.46.30 as permitted sender) Received: from [74.125.46.30] (HELO yw-out-2324.google.com) (74.125.46.30) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Apr 2008 13:55:08 +0000 Received: by yw-out-2324.google.com with SMTP id 9so920966ywe.85 for ; Tue, 15 Apr 2008 06:55:16 -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:user-agent:mime-version:to:subject:references:in-reply-to:x-enigmail-version:content-type:content-transfer-encoding; bh=xuqAcYcGV0fb1fzmYPgWVrXxLrAVBsOUv2XFvG0OPx4=; b=cKYzqz48K7snpfzSJ9VvYzPBu/tgL65ayQesBUirUgAQjgi47ZGPRvO72HZ5MlLSNBGEQMlfYWIL7Hg6wKZWgwUcarm9uyD7j1/kFGc4EJKhekbAEKgCmy/DnM5KdW8a5BpE5lDjxxVVVQB7v2sntD2wjTejnJbJE9C6wKNE/x8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references:in-reply-to:x-enigmail-version:content-type:content-transfer-encoding; b=HoRug3wtG81b8inScQF/9sIOK8Fy2Fa/kBd6uo1to2P+HmVFV04xqGcfzB1mx/N57LA0SZ24tGxczMWRwk1jXtJ9Qy3EhjDk/h3hd3SEdUl8NvndwQIiHl6G+JZqIwmFJkPI89CZz4irdrPy3YwNOeE1Zq4CfVkCIvWGLxDYKlU= Received: by 10.151.99.3 with SMTP id b3mr7796264ybm.179.1208267716890; Tue, 15 Apr 2008 06:55:16 -0700 (PDT) Received: from ?172.16.3.2? ( [66.84.139.198]) by mx.google.com with ESMTPS id 26sm17458920wrl.38.2008.04.15.06.55.15 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 15 Apr 2008 06:55:16 -0700 (PDT) Message-ID: <4804B4A7.8000005@gmail.com> Date: Tue, 15 Apr 2008 08:59:03 -0500 From: "Jay D. McHugh" User-Agent: Thunderbird 2.0.0.9 (X11/20071031) MIME-Version: 1.0 To: user@geronimo.apache.org Subject: Re: JPQL named parameter does not work References: In-Reply-To: X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org CG, I have used named parameters without any problem. I think your problem is that 'desc' may be getting counted as a reserved word. Try changing it to something else (maybe expand it out to 'description') and see if that makes a difference (I think it will). Let us know how it goes, Jay CG wrote: > 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: nonfatal user error> 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: nonfatal user error> 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)