You are right. I completely misread that. I'd still probably do raw SQL or an SQLTemplate, though.
Thanks, /dev/mrg On Thu, Mar 6, 2008 at 3:31 PM, Mike Kienenberger <[EMAIL PROTECTED]> wrote: > Michael, just to clarify, he doesn't want to work with Employees. He > wants to work with Departments. Scott wants to know how to do this > without pulling in the Employee records. > > > > On 3/6/08, Michael Gentry <[EMAIL PROTECTED]> wrote: > > If it is mandatory, it sounds like these records were created outside > > of Cayenne (they are legacy, testing, etc records)? If that is the > > case, the easiest thing to do is to just issue an SQL command directly > > to the database (using whatever normal SQL command you use). > > Something like: > > > > delete from employee where departmentFK is null; > > > > If it is something that is happening regularly, though, and you want > > to be able to nuke them from within your Cayenne application, you can > > issue raw SQL to do the trick, too: > > > > DataContext dataContext = DataContext.createDataContext(); > > SQLTemplate sqlQuery = new SQLTemplate(Customer.class, "delete from > > employee where departmentFK is null"); > > dataContext.performNonSelectingQuery(sqlQuery); > > > > With this code, though, be careful that you don't have any of those > > dangling employees in memory, as this totally bypasses the Cayenne > > object graph. > > > > /dev/mrg > > > > > > > > On Thu, Mar 6, 2008 at 3:19 PM, Scott Anderson <[EMAIL PROTECTED]> wrote: > > > Employee.Department is mandatory; I want to search for and delete rogue > > > departments. > > > > > > > > > > > > -----Original Message----- > > > From: Michael Gentry [mailto:[EMAIL PROTECTED] > > > Sent: Thursday, March 06, 2008 2:08 PM > > > To: user@cayenne.apache.org > > > Subject: Re: Get the number of FKs > > > > > > It seems you mainly want a list of employees who are not in a > > > department, so doing a fetch on Employee where "department = null" > > > might work (I'm not positive I've ever tried this, but it seems logical > > > to me). > > > > > > /dev/mrg > > > > > > On Thu, Mar 6, 2008 at 1:58 PM, 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? > > > > > > > > > >