Hi Marcin,
I check my model, and now the xxx.map.xml is equal to your example.
The new problem is inside Java.
you wrote:
>Entity e = getContext().newObject(Entity.class);
>Name n getContext().newObject(Name.class);
>e.addToNames(n);
>getContext().commitChanges();
but the method addToName does not accept a Name object, but a NameRelation
object.
Do you know where the error is?
Thanks a lot
Marco
On 12/8/06, Marcin Skladaniec <marci..sh.com.au> wrote:
>
> 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
>
>
>
This archive was generated by hypermail 2.0.0 : Sun Dec 10 2006 - 12:59:57 EST