Andrus, you'd probably be the best guy to answer this, but I'm going to
throw it out there in general. For reasons lost to me now, with the old
milestones, I'd have code like the following:
final Blah b = (Blah) dc.createAndRegister(Blah.class);
// Somewhere else.
dc.unregisterObjects(Collections.singletonList(b));
// Somewhere else.
b.setSomeRelation(yo);
yo is registered with the DC, so setting the relationship should register
b with the DC as well. I suspect I had the unregister call because at one
point there were problems with registering a DO twice with the same DC.
Anyway, the above causes an exception. I've spent the better part of the
day tracking it down. It appears that when the insert occurs, the ID
recorded for yo is null (so, the exception is a not-null constraint
violation). Remove the unregisterObjects() call and everything works
dandy. The problem seems to be the first time through all the ObjectDiffs
get created fine. The second time through, however, there is no
ArcOperation created for the relationship.
So, is this a bug in how I'm doing things or in how Cayenne is? At this
point, I'm going to remove the unregisterObjects() call, but it seems to
me that if setting relationships will auto-register, it should set
everything up identically.
Thanks,
Kevin
This archive was generated by hypermail 2.0.0 : Tue May 02 2006 - 20:18:14 EDT