Re: Many-to-many question ...
Re: Many-to-many question ...
- Subject: Re: Many-to-many question ...
- From: Lachlan Deck <email@hidden>
- Date: Thu, 25 Oct 2007 18:57:00 +1000
On 25/10/2007, at 6:43 PM, Daniele Corti wrote:
2007/10/25, Lachlan Deck <email@hidden>:
On 25/10/2007, at 11:17 AM, Shagor Ghani wrote:
Have a quick question around join tables storing M2M
relationships. I need
to store a M2M relationship and created a table for it using
Property>Join
in Many-to-Many option from within EOModeler itself. This table
has two
columns, id1 and id2, both of which are primary and which together
produce a
unique record. In my code, I've been doing creating new rows into
this
table using the standard
object.addObjectToBothSidesOfRelationshipWithKey(
object, key ) call. Now, though, I also need to store additional
values
within this record, for example a boolean bit indicating whether
the record
is active or not. How is this done? If I manually add a 3rd
attribute
column, what call is then used to update/create new record(s)?
You have two choices with M2M Join tables.
A<-->>AB<<-->B
1) flatten the relationships... so that you're adding to both sides
of relationship two records on either side of the join. Join records
using EOGenericRecord and don't have any logic in them.
A myA = (A)EOUtilties.createAndInsertInstance(ec, "A");
B myB = (B)EOUtilties.createAndInsertInstance(ec, "B");
myA.addObjectToBothSidesOfRelationshipWithKey(myB, "bs");
How this work? Do you need to set the EOmodel in some way?
Flattening relationships involves creating a many-to-many join like
here:
http://wiki.objectstyle.org/confluence/display/WOL/Creating+a+Many+to
+Many+Join
2) don't flatten the relationships
Otherwise, create normal toMany relationship from A to AB, and B to
AB in the modeler.
with regards,
--
Lachlan Deck
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden