Re: Queries based on relationship size

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Thu Feb 21 2008 - 14:51:35 EST

  • Next message: Kevin Menard: "RE: Queries based on relationship size"

    I hope the difference between the two will not be that noticeable (I'd
    say logically they are the same, only the assembly API is different)
    once we implement a master generics-friendly object query that was
    discussed on the dev list some time back... But this won't happen
    overnight of course...

    Andrus

    On Feb 21, 2008, at 9:40 PM, Kevin Menard wrote:

    > 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:52:12 EST