Hi, Thank you for writing.
Is this a problem with ODMG and Oracle or is it independent of the DataBase? Because it is a very important feature and it's strange to have a bug like this. Did you find many bugs in ODMG or only this? I am deciding wich way I'm going to take with the project yet... Thanks. On Fri, 06 Sep 2002 00:39:22 +0200 Olaf <[EMAIL PROTECTED]> wrote: >ODMG M:N problems > >I also tried it but exactly the same happened to me. > >Ricardo Kohler wrote: >>When inserting objects (using m:n decomposed) ODMG try to >>insert twice my object into the table. Like they said in >>the other message I tryed to put auto-update=false... >>But it gives a different error then: "Parent key > FK_Pacient >>not found". I noted that ODMG try to insert data into the >>intermediary table before than in the other, because it >>inserts into the both other. > >There must be a bug resulting in wrong inserts/updates. > >When sticking to the person <-> project example from the > tutorial in a simplified notation: > ><snippet> >doris = new Person(); > >proj = query(Project.class, "select x where id=1"); >tx.lock(proj, tx.WRITE); >proj.getCollectionPerson().add(doris); >tx.commit(); > >proj = query(Project.class, "select x where id=2"); >tx.lock(proj, tx.WRITE); >proj.getCollectionPerson().add(doris); >tx.commit(); ></snippet> > >results in only one new row in the intermediary table > which is a relation between doris >and project.id=2. > >Table project_person: >person_id project_id >1 2 > > ><snippet> >doris = new Person(); >james = new Person(); > >proj = query(Project.class, "select x where id=1"); >tx.lock(proj, tx.WRITE); >proj.getCollectionPerson().add(doris); >tx.commit(); > >proj = query(Project.class, "select x where id=1"); >tx.lock(proj, tx.WRITE); >proj.getCollectionPerson().add(james); >tx.commit(); > >proj = query(Project.class, "select x where id=2"); >tx.lock(proj, tx.WRITE); >proj.getCollectionPerson().add(doris); >tx.commit(); ></snippet> > >results in the intermediary table correctly with two > 'doris' rows to project.id=1 and project.id=2 and in one > 'james' row. But it seems that the inserts are perfomed > twice >as I'm getting an error from my sql server (hsqldb) that > it can't insert (values(1, 1)) >because the index must be unique. I think it probably > inserts the whole collection again. > >Table project_person: >person_id project_id >1 1 >1 2 >2 1 > > >Maybe I'll migrate my project to the PersistenceBroker > API. If I would have more time I >would take a deeper look at the sources. > >/olaf > > > >-- >To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> >For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > -- --Ricardo Kohler Costa ________________________________________________ Don't E-Mail, ZipMail! http://www.zipmail.com/ -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
