cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Polino" <e...@campgroundautomation.com>
Subject Re: Expression string
Date Mon, 03 Mar 2008 20:55:30 GMT
I ran it with SQuirrel using the DerbyClient and it works fine.

On 3/3/08, Fredrik Liden <fliden@translate.com> wrote:
> Hi Eric,
>
>  Lot of stuff going on in that query. Did you run a test query to made
>  sure it works without Cayenne? Just to make sure it's not Derby having
>  some issues with the subqueries.
>
>
>  Fredrik Liden
>  ENLASO Corp.
>
>
>
>  -----Original Message-----
>  From: Eric Polino [mailto:eric@campgroundautomation.com]
>  Sent: Monday, March 03, 2008 1:30 PM
>  To: user@cayenne.apache.org
>  Subject: Expression string
>
>  I'm trying to query my db with the following setup and it keep getting
>  Expression parsing errors
>
>       Expression exp = Expression.fromString(
>             "select * from SA.Site s" +
>             "where not exists ( "+
>                 "select * from SA.Reservation r " +
>                 "where " +
>                   "r.checkindate < $out and " +
>                   "r.checkoutdate > $in and " +
>                   "r.reservationType = 'S' and r.site = s.siteid" +
>             ") and not exists ( " +
>                 "select * from SA.Stay st, SA.Reservation r " +
>                 "where " +
>                   "r.checkindate < $out and " +
>                   "r.checkoutdate > $in and " +
>                   "st.site = s.siteid" +
>             ")");
>       Map params = new HashMap();
>
>       FieldPosition fp = new FieldPosition(DateFormat.DATE_FIELD);
>       SimpleDateFormat sdk = new SimpleDateFormat("yyyy-MM-dd");
>
>       params.put("in", sdk.format(res.getCheckInDate(), new
>  StringBuffer(""), fp).toString());
>       params.put("out",sdk.format(res.getCheckOutDate(), new
>  StringBuffer(""), fp).toString());
>       SelectQuery sq = new SelectQuery(Site.class,
>  exp.expWithParameters(params));
>
>       site = (Site)context.performQuery(sq).get(0);
>
>  Execution never reaches the creation of the HashMap as
>  Expression.fromString() always throws an exception.  The following is
>  the start of the logging.  It _ends_ with the exception being thrown.
>  There is a long stack trace that follows.
>
>  INFO  QueryLogger: --- will run 1 query.
>  INFO  QueryLogger: Opening connection:
>  jdbc:derby://localhost:1527/SunriseDB
>         Login: sa
>         Password: *******
>  INFO  QueryLogger: +++ Connecting: SUCCESS.
>  INFO  QueryLogger: --- transaction started.
>  INFO  QueryLogger: Detected and installed adapter:
>  org.apache.cayenne.dba.derby.DerbyAdapter
>  INFO  QueryLogger: SELECT t0.cancelled, t0.checkInDate,
>  t0.checkOutDate, t0.confirmationCode, t0.reservationType, t0.siteType,
>  t0.reservationId, t0.customer, t0.site FROM SA.Reservation t0 WHERE
>  t0.confirmationCode = ? [bind: '32347'] - prepared in 49 ms.
>  INFO  QueryLogger: === returned 1 row. - took 1924 ms.
>  INFO  QueryLogger: +++ transaction committed.
>  Mar 3, 2008 3:17:36 PM com.sun.xml.ws.server.sei.EndpointMethodHandler
>  invoke
>  SEVERE: [v.2.0.4 October 12 2007] Encountered "Site" at line 1, column
>  15.
>  Was expecting one of:
>     <EOF>
>     "or" ...
>     "and" ...
>     "not" ...
>     "!" ...
>
>  I tried using a SQLTemplate to do the same thing, but I had issues
>  with it figuring out what object to create (Site).  Anyone know why
>  I'm having this problem?  I've been hunting for a few hours and don't
>  know where to look now.
>
>  Thanks,
>  Eric
>
>  --
>  Eric Polino
>  Campground Automated Systems
>


-- 
Eric Polino
Campground Automated Systems

Mime
View raw message