Re: Timestamp in JPQL where clause issue

2009-07-28 Thread wang yu
Pinaki,
Yes ,you're right.
Thanks!

Yu Wang

On Mon, Jul 27, 2009 at 8:32 PM, Pinaki Poddarppod...@apache.org wrote:

 Hi,
  Can you please change the parameter name from to something else?
 The error is during parse and may have be related to the fact that from is
 a reserved word in JPQL.



 -
 Pinaki
 --
 View this message in context: 
 http://n2.nabble.com/Timestamp-in-JPQL-where-clause-issue-tp3332190p550.html
 Sent from the OpenJPA Users mailing list archive at Nabble.com.



Timestamp in JPQL where clause issue

2009-07-27 Thread wang yu
Hello,
I met an OpenJPA Timestamp filed in JPQL where clause issue.
I used it as:
EntityManagerFactory factory = 
Persistence.createEntityManagerFactory(
test, System.getProperties());
String sql= SELECT callpath FROM Callpath callpath WHERE
callpath.starttime  :from;
Query query = factory.createEntityManager().createQuery(sql);
query.setParameter(from, new
Timestamp(System.currentTimeMillis()), TemporalType.TIMESTAMP);
query.getResultList();

The Exception stack:
openjpa-1.2.1-r752877:753278 nonfatal user error
org.apache.openjpa.persistence.ArgumentException: Encountered
callpath . starttime  : from at character 46, 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,
DECIMAL_LITERAL, IDENTIFIER, INTEGER_LITERAL, STRING_LITERAL].
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.conditional_primary(JPQL.java:1947)
at 
org.apache.openjpa.kernel.jpql.JPQL.conditional_factor(JPQL.java:1925)
at org.apache.openjpa.kernel.jpql.JPQL.conditional_term(JPQL.java:1791)
at 
org.apache.openjpa.kernel.jpql.JPQL.conditional_expression(JPQL.java:1753)
at org.apache.openjpa.kernel.jpql.JPQL.where_clause(JPQL.java:1556)
at org.apache.openjpa.kernel.jpql.JPQL.select_statement(JPQL.java:91)
at org.apache.openjpa.kernel.jpql.JPQL.parseQuery(JPQL.java:63)
at 
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.parse(JPQLExpressionBuilder.java:1740)
at 
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.init(JPQLExpressionBuilder.java:1727)
at org.apache.openjpa.kernel.jpql.JPQLParser.parse(JPQLParser.java:48)
at 
org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(ExpressionStoreQuery.java:149)
at 
org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:657)
at 
org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:625)
at 
org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:605)
at 
org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:667)
at org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1492)
at 
org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:123)
at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:243)
at 
org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294)

And I noticed a bug track:
http://mail-archives.apache.org/mod_mbox/openjpa-dev/200801.mbox/%3c2013506.1200781234450.javamail.j...@brutus%3e

Has it been resolved? Or do I have a workaround?

Thanks!

Regards,
Yu Wang


Re: Timestamp in JPQL where clause issue

2009-07-27 Thread wang yu
And I used OpenJPA 1.2.1.

-Yu Wang

On Mon, Jul 27, 2009 at 2:20 PM, wang yuwangy...@gmail.com wrote:
 Hello,
 I met an OpenJPA Timestamp filed in JPQL where clause issue.
 I used it as:
                EntityManagerFactory factory = 
 Persistence.createEntityManagerFactory(
                                test, System.getProperties());
                String sql= SELECT callpath FROM Callpath callpath WHERE
 callpath.starttime  :from;
                Query query = factory.createEntityManager().createQuery(sql);
                query.setParameter(from, new
 Timestamp(System.currentTimeMillis()), TemporalType.TIMESTAMP);
                query.getResultList();

 The Exception stack:
 openjpa-1.2.1-r752877:753278 nonfatal user error
 org.apache.openjpa.persistence.ArgumentException: Encountered
 callpath . starttime  : from at character 46, 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,
 DECIMAL_LITERAL, IDENTIFIER, INTEGER_LITERAL, STRING_LITERAL].
        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.conditional_primary(JPQL.java:1947)
        at 
 org.apache.openjpa.kernel.jpql.JPQL.conditional_factor(JPQL.java:1925)
        at org.apache.openjpa.kernel.jpql.JPQL.conditional_term(JPQL.java:1791)
        at 
 org.apache.openjpa.kernel.jpql.JPQL.conditional_expression(JPQL.java:1753)
        at org.apache.openjpa.kernel.jpql.JPQL.where_clause(JPQL.java:1556)
        at org.apache.openjpa.kernel.jpql.JPQL.select_statement(JPQL.java:91)
        at org.apache.openjpa.kernel.jpql.JPQL.parseQuery(JPQL.java:63)
        at 
 org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.parse(JPQLExpressionBuilder.java:1740)
        at 
 org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.init(JPQLExpressionBuilder.java:1727)
        at org.apache.openjpa.kernel.jpql.JPQLParser.parse(JPQLParser.java:48)
        at 
 org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(ExpressionStoreQuery.java:149)
        at 
 org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:657)
        at 
 org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:625)
        at 
 org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:605)
        at 
 org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:667)
        at 
 org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1492)
        at 
 org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:123)
        at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:243)
        at 
 org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294)

 And I noticed a bug track:
 http://mail-archives.apache.org/mod_mbox/openjpa-dev/200801.mbox/%3c2013506.1200781234450.javamail.j...@brutus%3e

 Has it been resolved? Or do I have a workaround?

 Thanks!

 Regards,
 Yu Wang



Re: Timestamp in JPQL where clause issue

2009-07-27 Thread Pinaki Poddar

Hi,
  Can you please change the parameter name from to something else?
The error is during parse and may have be related to the fact that from is
a reserved word in JPQL.



-
Pinaki 
-- 
View this message in context: 
http://n2.nabble.com/Timestamp-in-JPQL-where-clause-issue-tp3332190p550.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.