Cayenne 3.0M4 supports outer joins. So you can match against NULL to
select objects with no targets over a given relationship. E.g. from
Cayenne tests:
SelectQuery missingToManyQuery = new SelectQuery(Artist.class);
missingToManyQuery.andQualifier(
ExpressionFactory.matchExp(Artist.GROUP_ARRAY_PROPERTY +
Entity.OUTER_JOIN_INDICATOR, null));
generates SQL like this:
SELECT DISTINCT t0.ARTIST_NAME, t0.ARTIST_ID, t0.DATE_OF_BIRTH
FROM ARTIST t0 LEFT JOIN ARTIST_GROUP t1 ON (t0.ARTIST_ID =
t1.ARTIST_ID)
WHERE t1.GROUP_ID IS NULL ORDER BY t0.ARTIST_NAME
Andrus
On Jun 16, 2008, at 9:44 PM, Scott Anderson wrote:
Can anyone help with this?
-----Original Message-----
From: Scott Anderson [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 12, 2008 1:04 PM
To: [email protected]
Subject: Expression question
What would be the best way to construct an expression which asserts
that
a flattened many-to-many relationship has no entries? Looking at
methods
in ExpressionFactory, nothing jumps out at me. I'm looking for rouged
items in a hierarchy.
Thanks,
Scott