Thanks. I'll have to give that a go over the weekend. Unfortunately,
my API structure is centered around SelectQuery and a visitor for adding
expressions and orderings. Changing the root query type will require a
few more changes than I was hoping for. At least it'll give me an
excuse to finally play with EJB QL.
-- Kevin Menard Servprise International, Inc. Remote reboot & power control for your network www.servprise.com +1 508.892.3823 x308> -----Original Message----- > From: Andrus Adamchik [mailto:andru..bjectstyle.org] > Sent: Thursday, February 21, 2008 8:56 AM > To: use..ayenne.apache.org > Subject: Re: Queries based on relationship size > > EJBQL query with outer joins should help: > > 1. select c from Customer c JOIN c.orderHistory > > (inner join filters customers with Orders, so this is like a > regular SelectQuery) > > 2. select c from Customer c LEFT JOIN c.orderHistory d WHERE d is null > > (outer join combined with the WHERE clause should allow fetching > customers with no orders) > > Two caveats: we still need to add pagination support per CAY-963; I > may have taken a few _temporary_ shortcuts in the EJBQL parser that > may cause trouble with flattened relationships, so let me know if you > run into problems. > > Andrus > > > > On Feb 21, 2008, at 3:05 AM, Kevin Menard wrote: > > > Greetings, > > > > I'm running into a little difficulty performing a query that I think > > comes up often enough that it should be fairly straightforward. > > > > I have a schema similar to the following: > > > > Customer <--- BillingInfo <--- Order > > > > I've mapped the read-only relationship "orderHistory" from Customer > to > > Order. > > > > Now I'd like to perform two queries. One for customers with orders > > and > > one for customers without. I'd rather not filter in the app itself > > because I'd like to paginate the result lists. > > > > Is there a way to do this without resulting to an SQLTemplate query? > > > > Thanks, > > Kevin > > > > -- > > Kevin Menard > > Servprise International, Inc. > > Remote reboot & power control for your network > > www.servprise.com +1 508.892.3823 x308 > > > > > >
This archive was generated by hypermail 2.0.0 : Thu Feb 21 2008 - 14:41:29 EST