I haven't tried it, but I would think that if anything were going to
work out of the box, it would be

expression = 
ExpressionFactory.matchExp(Department.EMPLOYEE_LIST_RELATIONSHIP_PROPERTY,
null);


Department.EMPLOYEE_LIST_RELATIONSHIP_PROPERTY may be named
differently in your generated classes -- it'd be equal to "employees",
most likely.

Unfortunately, I don't know if you can do a null comparision against a
to-many relationship.

If not, I suspect your next best bet is to create an SQLTemplate.

I wouldn't bother with the intermediate step of fetching how many
employees are in the list -- I'd simply pull back all departments that
have no employees since you're planning on deleting them anyway, or at
least department primary keys.


On 3/6/08, Scott Anderson <[EMAIL PROTECTED]> wrote:
> I've got a one-to-many relationship (employees belong to a department),
>  and I'd like to search for departments that have no employees.
>  Currently, I have something like:
>
>  foreach(dept : departments) {
>     if(dept.getEmployees().size() == 0)
>         context.deleteObject(dept);
>  }
>
>  When I do this, it has the effect of telling Cayenne to fetch data rows
>  for every employee in the database; this will not scale well. Is there
>  any way I can get the size of the array without doing a custom SELECT
>  query?
>

Reply via email to