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 <sanderso..irvana.com> 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?
>
This archive was generated by hypermail 2.0.0 : Thu Mar 06 2008 - 15:29:35 EST