openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "C N Davies" <...@cndavies.com>
Subject RE: Query confusion
Date Wed, 24 Feb 2010 01:11:16 GMT
Hi Kevin,

 

It's a bit strange, because I had this issue when I was trying move up to
2.0Beta from 1.2.1 on the weekend. I found that Jira and used Nicolas' patch
instead but the same issue occurred even after rebooting and running build
clean on my application. So I went back to 1.2.1 because I had other things
to do. When you replied to my email on Monday I couldn't remember the error
so I put Nicolas' patch back in so I could reproduce the error, but it no
longer occurred. Then this morning I went back to the standard 2.0Beta jar
and it no longer has the error either. Nuts!

 

After all of this I still have my original issue though,  I can't use the
"+" symbol in my query, how is everyone else doing addition? This is the
piece of my query that will fail:

 

 Select sum(dl.bwCount  * dl.bwRate) + sum(dl.clrCount  * dl.clrRate)  from
DataLine .blah blah

 

 

I am trying to add the result of the two calculations, but will always
receive the error:

 

Encountered "+" at character 222, but expected: [",", "FROM"].

      at
org.apache.openjpa.kernel.jpql.JPQL.generateParseException(JPQL.java:9501)

      at
org.apache.openjpa.kernel.jpql.JPQL.jj_consume_token(JPQL.java:9378)

      at org.apache.openjpa.kernel.jpql.JPQL.from_clause(JPQL.java:245)

      at org.apache.openjpa.kernel.jpql.JPQL.select_statement(JPQL.java:88)

      at org.apache.openjpa.kernel.jpql.JPQL.parseQuery(JPQL.java:63)

      at
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.parse(JPQLEx
pressionBuilder.java:1740)

 

 

Also I found that I can't do this:

 

Sum(dl.bwCount) * dl.bwRate because it will give me a similar parse error
with the "*"  symbol, so I had to move it inside the brackets instead to et
it to work. I can't do that with this new query, I did try using it like
this below, where I enclosed the whole calculation inside brackets, but it
then bitches about the starting bracket:

 

 

Select ( sum(dl.bwCount  * dl.bwRate) + sum(dl.clrCount  * dl.clrRate) )
from DataLine .blah blah

 

Chris

 

 

 

From: Kevin Sutter [mailto:kwsutter@gmail.com] 
Sent: Wednesday, 24 February 2010 2:37 AM
To: cnd@cndavies.com
Cc: users@openjpa.apache.org; Donald Woods; Rick Curtis
Subject: Re: Query confusion

 

Hi Chris,
Looked at the referenced JIRA [1] a bit closer...  You mentioned that you
ran with Nicolas' patch, but the call stack you posted still has the
validator getting loaded.  It looks like Nicolas' patch comments out the
loading of the Validator and Agent in order to get around the original
errors.  So, if you run with Nicolas' patch, do you still experience the
classloader problem or some other problem?

Since you can't currently get around the classloading issue, then you
haven't been able to validate Catalina's statements about supporting the
jpql updates.  Correct?

I know that we have tested these validation and agent loaders in the JSE
environment and within the WebSphere environment.  I'm wondering if the
classloading issue is related to the Tomcat classloading mechanism.

Kevin


[1]  https://issues.apache.org/jira/browse/OPENJPA-1410

On Tue, Feb 23, 2010 at 8:40 AM, Kevin Sutter <kwsutter@gmail.com> wrote:

Hi Chris,
I think I found the JIRA you were referring to...
https://issues.apache.org/jira/browse/OPENJPA-1410.

I'm not sure what's in Nicolas's patched version.  Since Donald is the
current assignee, I'll copy him on this reply to see if he has any other
ideas.  And, I'll copy Rick since the JIRA seems related to some work that
he has done in the past.

Kevin

 

On Mon, Feb 22, 2010 at 8:49 PM, C N Davies <cnd@cndavies.com> wrote:

Hi Kevin,

 

I can't find it in the Jira, but I added a comment on last Saturday, I
downloaded the patched version
apache-openjpa-2.0.0-beta\openjpa-all-2.0.0-svn-910423.jar to fix the issue
however it did not fix the other issue of being able to use "+" symbol in my
query.   

 

Chris

 

 

From: Kevin Sutter [mailto:kwsutter@gmail.com] 
Sent: Tuesday, 23 February 2010 1:19 AM


To: users@openjpa.apache.org; cnd@cndavies.com
Subject: Re: Query confusion

 

Hi Chris,
Which classloader issue are you referring to?  

Thanks,
Kevin

On Sat, Feb 20, 2010 at 5:49 AM, C N Davies <cnd@cndavies.com> wrote:

Thanks for the info Catalina,



I would like to switch to OpenJPA 2.0 Beta but I hit one of the open issues
regarding the class loader. So I'm stuck!



Thanks



Chris





From: catalina wei [mailto:catalina.wei@gmail.com]
Sent: Saturday, 20 February 2010 10:33 PM

To: users@openjpa.apache.org; cnd@cndavies.com
Subject: Re: Query confusion



Chris,
sum(dl.bwCount) * dl.bwRate is a scalar expression.
In Java Persistence 1.0 spec, scalar expression is not allowed to appear as
a select item.  That is why you are getting a syntax error.
JPQL in Java Persistence 2.0 spec has updated the syntax and the scalar
expression can be a select item. This support is available in OpenJPA 2.0.x
releases.
Could you try any OpenJPA 2.0.x releases ?

Catalina

On Sat, Feb 20, 2010 at 12:03 AM, C N Davies <cnd@cndavies.com> wrote:

Thanks Daryl,



Pretty obvious, why couldn't I see it!



Now I see my next issue, here is my query truncated down  to the specific
issue:



Select sum(dl.bwCount) * dl.bwRate from DLine as dl;



<openjpa-1.2.1-r752877:753278 nonfatal user error>
org.apache.openjpa.persistence.ArgumentException: Encountered "*" at
character 111, but expected: [",", "FROM"].

    at
org.apache.openjpa.kernel.jpql.JPQL.generateParseException(JPQL.java:9501)



What is wrong with my "*" symbol? It is documented as supported.



I tried like this:



(sum(dl.bwCount) * dl.bwRate)



Same issue L



Thanks!



Chris





From: Daryl Stultz [mailto:daryl@6degrees.com]
Sent: Saturday, 20 February 2010 12:56 AM
To: users@openjpa.apache.org; cnd@cndavies.com
Subject: Re: Query confusion






On Fri, Feb 19, 2010 at 8:46 AM, C N Davies <cnd@cndavies.com> wrote:

Hi,

Select Name, Age, EmailAddress, Weight from com.mypackage.User were Age > 25
Using OpenJPA I only know I can query like this:
Select u from User where Age > 25



You can do this in JPA QL:



select u.name, u.age, u.emailAddress, u.weight from User as u



But getResultList()  will return a list if User entities, but  I only want
specific fields as would be returned by my standard SQL above.



My above example will return an Object[]. Not especially easy to use, a Map
would be nice. But there it is.


--
Daryl Stultz
_____________________________________
6 Degrees Software and Consulting, Inc.
http://www.6degrees.com
mailto:daryl@6degrees.com





 

 

 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message