Okay, now that I have build time enhancement working, I have still not identified anything that should cause a problem.
All I do is remove a single entityManager.flush() call from my EJB, and voila, the problem is gone. But, I put the flush back in, it adds one of the records from the list, and not the other; no errors, just doesn't finish adding the whole collection. ----- "Trenton D. Adams" <[email protected]> wrote: > From: "Trenton D. Adams" <[email protected]> > To: [email protected], [email protected] > Sent: Thursday, May 27, 2010 1:04:09 AM GMT -07:00 US/Canada Mountain > Subject: Re: openjpa-1.2.1 partial commit problem > > Oh, I definitely want to do that, now that I know about it. Just > waiting for a response on my other topic. I'm thinking it's probably > related to some sort of annotation that I need to do on my enum, but > don't know what. > > ----- "C N Davies" <[email protected]> wrote: > > > From: "C N Davies" <[email protected]> > > To: [email protected] > > Sent: Thursday, May 27, 2010 12:25:14 AM GMT -07:00 US/Canada > Mountain > > Subject: RE: openjpa-1.2.1 partial commit problem > > > > Use prepersist / preupate listeners, you can check the content of > your > > objects inside there. > > > > Trust me, you would be better to spend your time working out why > build > > time enhancement blows up one of your objects, as I mentioned > before > > and Pinaki re-iterated runtime enhancement will often cause issues > > that manifest themselves nowhere near the root cause of the issue. > I > > would not be all surprise if your issue does related to run time > > enhancement. I went down the road of relying on run time > enhancement > > for months so I din't have to worry about setting up ant, I saved > time > > not having to work on ant but I lost 10 times the time trying to > sort > > out strange issues that never made any sense but turned out to be > the > > runtime enhancer. If it was up to me I'd remove it completely > > > > Chris > > > > > > -----Original Message----- > > From: Trenton D. Adams [mailto:[email protected]] > > Sent: Thursday, 27 May 2010 2:41 PM > > To: openjpa-users > > Subject: openjpa-1.2.1 partial commit problem > > > > Hi Guys, > > > > I am not yet using the build time enhancer, as it currently blows > up > > on one of my objects, as noted in another message to the list. So, > > it's sticking to runtime subclassing. > > > > I'm having the oddest problem. I am using EJB3, and have a method > > that REQUIRES_NEW for the transaction. It works fine like that, > but > > as soon as I remove that attribute, to get the default transaction > > attribute, my records are only partially committed, literally. > > > > So, what I'm trying to do, is > > 1. put a journal entry in with the message "pre commit entry" in > it's > > own transaction, to make sure something is entered in, in case > > something happens that blows up the rest of the commit process. > That > > way someone knows why the serial column has a missing journal > number. > > 2. add some entity objects to the journal entry, as a collection > > 3. merge the journal entry again with objects in the collection > > > > That's fine, but I decided to remove the REQUIRES_NEW, just to see > if > > my unit tests would fail. I found out really quickly that only one > > item of the collection is being persisted to the database. > > > > I am effectively going like this (pseudo code)... > > > > --- method with REQUIRES_NEW > > entityManager.persist(journalEntry); > > entityManager.flush(); // if this flush is removed, it > > works without REQUIRES_NEW, but not otherwise. > > > > --- method that calls method with REQUIRES_NEW > > journalEntry = new JournalEntry( > > ledgerBroker.getJournalType(), "pre commit entry"); > > sessionContext.getBusinessObject( > > > RIJournalEntryManager.class).persistMethod(journalEntry); > > journalEntry.addItem(blah); > > journalEntry.addItem(blah); > > entityManager.merge(journalEntry); > > entityManager.flush(); > > > > It seems to me that this is a bug in openjpa, but I cannot be > certain, > > as I'm VERY new to EJB/JPA.
