On Fri, Aug 28, 2009 at 1:46 PM, Michael Dick <[email protected]>wrote:

>
> The scenario you've described doesn't sound right (maybe I need a
> refresher). The new ShippingInstructions object should be unmanaged unless
> you've managed to inject a StateManager into it (which would be a good
> trick).
>

No, I've never injected anything in my life. I'm working in Tomcat. I'm
still confused, if an object has a state manager it's managed? Doesn't a
detached object have a state manager? Here's my unit test (as clean as
possible):

User editingUser = em.find(User.class, userOneId);
ScheduledAssignment saOne = setup.insertScheduledAssignment(...);
TimeTrackingEntry entry = new TimeTrackingEntry();
entry.setScheduledAssignment(saOne);
entry.setStartTime(startTime);
entry.setStartTime(endTime);
em = setup.getEntityManager(); // different em than above, simulating
different thread/web transaction
User editingUserClone = new User();
editingUserClone.setId(editingUser.getId());
editingUserClone.setArchived(editingUser.isArchived());
... more property copying
entry.setAddedBy(editingUserClone);
entry.setAddedOn(Calendar.getInstance().getTime());
em.getTransaction().begin();
em.merge(entry);
em.getTransaction().commit(); // expected this to fail, but it works


>
> Out of idle curiosity do you have any properties set in persistence.xml? Or
> should I be able to reproduce this with OpenJPA's default configuration?
>

<property name="openjpa.LockManager" value="none" />
<property name="openjpa.DetachState" value="loaded(AccessUnloaded=false)" />

-- 
Daryl Stultz
_____________________________________
6 Degrees Software and Consulting, Inc.
http://www.6degrees.com
mailto:[email protected]

Reply via email to