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

Reply via email to