Hi,
I'm
using Castor 0.8.11 and whenever I do a SELECT query with a WHERE IN LIST
clause containing negative Long values (e.g. select obj from MyObject obj
where myUId in list(-10, -20)),
I get
the following exception :
org.exolab.castor.jdo.QueryException: The LIST can only
contain literals and Keywords nil and undefined.
at org.exolab.castor.jdo.oql.ParseTreeWalker.checkInClauseRightSide(ParseTreeWalker.java:683)
at org.exolab.castor.jdo.oql.ParseTreeWalker.checkWhereClause(ParseTreeWalker.java:520)
at org.exolab.castor.jdo.oql.ParseTreeWalker.checkWhereClause(ParseTreeWalker.java:524)
at org.exolab.castor.jdo.oql.ParseTreeWalker.checkErrors(ParseTreeWalker.java:229)
at org.exolab.castor.jdo.oql.ParseTreeWalker.<init>(ParseTreeWalker.java:130)
at org.exolab.castor.jdo.engine.OQLQueryImpl.create(OQLQueryImpl.java:535)
at org.exolab.castor.jdo.oql.ParseTreeWalker.checkInClauseRightSide(ParseTreeWalker.java:683)
at org.exolab.castor.jdo.oql.ParseTreeWalker.checkWhereClause(ParseTreeWalker.java:520)
at org.exolab.castor.jdo.oql.ParseTreeWalker.checkWhereClause(ParseTreeWalker.java:524)
at org.exolab.castor.jdo.oql.ParseTreeWalker.checkErrors(ParseTreeWalker.java:229)
at org.exolab.castor.jdo.oql.ParseTreeWalker.<init>(ParseTreeWalker.java:130)
at org.exolab.castor.jdo.engine.OQLQueryImpl.create(OQLQueryImpl.java:535)
No
such problem with positive numbers.
I know
that the Castor version is very old but I can't upgrade it right now. Any idea
of what causes this problem and how to fix/work around it?
Many
thanks,
Al.