On Nov 17, 2011, at 1:40 PM, Paul Hoadley wrote: > On 17/11/2011, at 2:54 PM, David Avendasora wrote: > >> On Nov 17, 2011, at 7:48 AM, Paul Hoadley wrote: >> >>> On 17/11/2011, at 10:08 AM, David Avendasora wrote: >>> >>>> On Nov 10, 2011, at 5:34 AM, Paul Hoadley wrote: >>>> >>>>> Say I have two entities, User and Role, and a joining entity UserRole to >>>>> create a many-to-many relationship between them. So I have a >>>>> relationship 'userRoles' from User to UserRole (and a relationship >>>>> 'userRoles' from Role back to UserRole). I flatten the relationship on >>>>> User, so I also have a 'roles' relationship on that entity. >>>> >>>> Wait. "Also"?!? That's insane. That's two distinct relationships >>>> representing the same DB information, and one is hiding a huge piece of >>>> the action. You are just asking for trouble. >>> >>> User.userRoles is not a class property. All that's exposed is the >>> flattened User.roles. >> >> Okay, then that should be alright then, and I think nullify is the proper >> setting for the non-class "real" relationships. > > (I think I've now officially confused everyone, and kind of regret starting > this thread...) No, you want Cascade on the non-class "real" relationships > (to remove the row in the join table), and Nullify on the flattened > relationship—as Chuck noted, to remove the destination object from the > flattened relationship.
Ahg! I was meaning nullify on the the UserRole.user and UserRole.role relationships. The User.userRoles() and Role.userRoles() should be cascade, owns and propagate PK. The User.roles(), Role.users() relationships … well, I'll take your word for it. Especially seeing as how you went and tested it. :-) >>> I don't _think_ I'm talking about anything particularly unusual here, just >>> the standard result of creating a many-to-many relationship with Entity >>> Modeler, with a join entity and "Flatten relationships" checked. >> >> Not unusual, just something that you really shouldn't even be thinking about. > > Point taken, though someone has to think about it at some point. I thought > the default delete rule (Nullify) was wrong. Turns out I was incorrect. :-) But if you didn't flatten the relationship it wouldn't have been there to think about. That's what I'm trying to say. Flattening doesn't save time / work / grief, it just shifts it. Dave _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com