Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Inserts and Caching

Jan,
Assuming that these operations occur within a single JTA or application managed transaction you should use the following pattern.

->begin operations - transaction alpha active<-
   //operate on em
   while (?){
     em.persist(); // or whatever else needs to happen
   }
   //operation complete
  em.flush(); // flush changes to database within current transaction
em.clear(); //clear the em (including em cache) of all managed entities (you may not always need this)
->end operation - transaction alpha still active <-

as long as the same transaction is active for all of the operations if anything fails a rollback of the transaction will revert all of the SQL EclipseLink sent to the database within that transaction from all of the previous flush operations. On rollback the EntityManager will be cleared and your application will have a clean slate. The old entities that were previously associated with this EM will now be detached and are in a state where they may have uncommitted changes. Some applications can use these detached instances to retry the transaction with EM.merge() other applications will throw them away and start from scratch.

--Gordon

ossaert wrote:
Anyway, I still have the problem why the Insert over the API does not
work....

Can somebody help?

Thanks
Jan




Back to the top