Re: Queries against to-many relationships with 'NOT' subexpressions

From: Aristedes Maniatis (ar..aniatis.org)
Date: Tue Aug 24 2010 - 12:05:37 UTC

  • Next message: Victor Antonovich: "Re: Queries against to-many relationships with 'NOT' subexpressions"

    You need to create an outer join.

    http://cayenne.apache.org/doc/path-expressions.html

    On 24/08/10 9:05 PM, Victor Antonovich wrote:
    > Hello!
    >
    > My (simplified) Cayenne scheme has two kind of objects - Role's and Group's with many-to-many (flattened) relationships. Main task is to check is this Role member of some Group (i.e. 'Active') while it is not member of another group (i.e. 'Admin'). Aliased query expression looks like:
    >
    > ((a.name='Active') and (not (a.name='Admin')))
    >
    > where `a` is alias for `role.groups` to-many relationship to Group entities.
    >
    > But this query doesn't work as expected - roles in 'Admin' group will be returned. This is because DB query with double-joined Group table selects record with self-joined 'Active' group name.
    >
    > So question is simple - is there any way to do such queries?
    >
    > Thanks,
    > Victor.

    -- 
    -------------------------->
    Aristedes Maniatis
    GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A
    



    This archive was generated by hypermail 2.0.0 : Tue Aug 24 2010 - 12:06:17 UTC