Hello,

As far as i know for managing the relationships OJB do this (in 1.0, but it seems to be a generic design for updating relation in a database, i've done the same when i was writing my own persistence layer)) :
- it delete the existing records of the relationship for the object you want to update/store
- it recreate a record for each item in the relationship, based on what is stored in memory for the object (i.e jo in your example).
In your case i suspect that the object that you insert hasn't been entirely write to db [if it's a creation for example], so it has a primary key with a negative value ("-37" for example) provided by OJB which don't fit with the rules for the primary key that you have wrote in your schema for the database (example: the pk must be > 0).
But perhaps it's something totally different... The best way to understand this is to read the source code as i have done. It's well written and understandable, in my point of view.
@+
Ludo


Mariusz Wójcik wrote:

Hi I'm using ojb rc-7.0, and I have problems with inserting some of my objects to db (by OTM). Sometimes ( It's very strange, because I have mapped a lot of m:n references, but my problems concern the only one (why???? - I don't know....)).
During inserting or updating objects my database ( Oracle 9i ) throws Exception ( java.sql.SQLException: ORA-02291:integrity constraint (%s.%s) violated - parent key not found) .


I debugged my JDBC connection, and I saw that OJB sends to my db DELETE commands... WHY ????

Why does OJB try to delete my objects during INSERT or UPDATE operations ??? I don't want to delete any objects.
I don't understand it... What is the cause of this strange behaviour??? Maybe I have made a mistake in repository.xml, during object mapping ??? I have set those parameters: ( auto-retrieve="true" otm-dependent="true" auto-delete="false" auto-update="false").
I haven't got any ideas.... It's a huge problem for me...


Thanks for help

Best regards
mario

This is the code of my insert, update method:
***********************************
OTMKit kit = SimpleKit.getInstance();
OTMConnection conn = null;
Transaction tx = null;
try {
conn =
kit.acquireConnection(PersistenceBrokerFactory.getDefaultKey());
tx = kit.getTransaction(conn); tx.begin(); conn.makePersistent(jo);
tx.commit(); } catch (LockingException e) {
********************************


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to