Hi
just check if in your model (xxx.map.xml) you have something like that :
<db-entity name="Entity">
<db-attribute name="id" type="INTEGER" isPrimaryKey="true"
isMandatory="true"/>
more stuff
</db-entity>
<db-entity name="NameRelation">
<db-attribute name="entityId" type="INTEGER" isPrimaryKey="true"
isMandatory="true"/>
<db-attribute name="nameId" type="INTEGER" isPrimaryKey="true"
isMandatory="true"/>
eventually more stuff
</db-entity>
<db-entity name="Name"> <db-attribute name="id" type="INTEGER"
isPrimaryKey="true" isMandatory="true"/>
more stuff
</db-entity>
a bit further down :
<obj-entity name="Entity" className="Entity" dbEntityName="Entity">
stuff here
</obj-entity>
<obj-entity name="NameRelation" className="NameRelation" >
stuff here
</obj-entity>
<obj-entity name="Name" className="Name" dbEntityName="Name">
stuff here
</obj-entity>
and now the most important:
<db-relationship name="entities" source="Name" target="NameRelation"
toDependentPK="true" toMany="true">
<db-attribute-pair source="id" target="nameId"/>
</db-relationship>
<db-relationship name="names" source="Entity" target="NameRelation"
toDependentPK="true" toMany="true">
<db-attribute-pair source="id" target="entityId"/>
</db-relationship>
<db-relationship name="entity" source="NameRelation" target="Entity"
toMany="false">
<db-attribute-pair source="entityId" target="id"/>
</db-relationship>
<db-relationship name="name" source="NameRelation" target="Name"
toMany="false">
<db-attribute-pair source="nameId" target="id"/>
</db-relationship>
<obj-relationship name="entities" source="Name" target="Entity"
deleteRule="Deny" db-relationship-path="entities.entity"/>
<obj-relationship name="names" source="Entity" target="Name"
deleteRule="Deny" db-relationship-path="names.name"/>
and now in Java:
Entity e = getContext().newObject(Entity.class);
Name n getContext().newObject(Name.class);
e.addToNames(n);
getContext().commitChanges();
This should do.
Marcin
On 09/12/2006, at 1:53 AM, marco turchi wrote:
Hi,
I'm a new Cayenne user and I'm trying to create a many to many
relationship.
This is the whole situation:
Entity<<->>NameRelation<<->>Name
NameRelation has a composed key id_entity, id_name
I create the model where
Entity has a "to many" relationship to Name, and a relationship that
forwards its key to NameRelation (the flag "To Dep PK" enabled)
Name has a relationship that forwards its key to NameRelation (the
flag "To
Dep PK" enabled)
NameRelation has two "to many" relationship directed to Name and
Entity.
The problem is that when I insert an element into Entity and into
Name, the
software did not insert automatically the row into NameRelation.
maybe it is an easy question for you, but not for me... :-(
please, can you help me?
Thanks a lot
Marco
-------------------------->
ish
http://www.ish.com.au
Level 1, 30 Wilson Street Newtown 2042 Australia
phone +61 2 9550 5001 fax +61 2 9550 4001