Re: Get the number of FKs

From: Mike Kienenberger (mkienen..mail.com)
Date: Thu Mar 06 2008 - 15:29:04 EST

  • Next message: Mike Kienenberger: "Re: Get the number of FKs"

    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