Hi, All, Can anyone give me some guidance on this really simple question. How do you insert multiple new records in to a single table in one transaction? Creating the first object instance to represent the first record is fine. I'm getting stuck when I want to create the second object instance because Castor insists that I'm trying to duplicate the first instance. I need to put some code inside an iterative control structure because the number of new records (object instances) is indefinite.
This is as far as I have got:-
Enumeration e; // contains the list of strings. // We want to store each string in a new record. intEmailAID int; //variable for managing the value of the identity field. /* .. set up database connection, etc .. */
db.begin(); // begin a transaction
EmailAJDO em = new EmailAJDO(); //set up a new instance of an 'EMailAJDO' object. //This maps to a record in the 'EmailA' table.
//loop through the e enumeration while (e.hasMoreElements()){ em.setEmailAID(intEmailAID); // EmailAID is the identity field. em.setAddress((String)e.nextElement()); db.create(em); //Fails here on second time around the loop. /*Exception message: "Duplicate identity found for object of type model.EmailAJDO with identity 5: an object with the same identity already exists in persistent storage" */
intEmailAID = intEmailAID+1; //increment the identity field } // Commit the transaction db.commit();
There must be a simple way of doing this 'cos it's one of the most basic database operations. Any offers?
Create a new emailAJDO instance inside the loop, now you are just using one instance.
Stein
----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev
