Apache JDO Project - Re: 2.1 Spec: detached-dirty parameters to makePersistent() when DetachAllOnCommit=tru

This is Interesting: Free IT Magazines  
Home > Archive > Apache JDO Project > August 2007 > Re: 2.1 Spec: detached-dirty parameters to makePersistent() when DetachAllOnCommit=tru





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Re: 2.1 Spec: detached-dirty parameters to makePersistent() when DetachAllOnCommit=tru
Andy Jefferson

2007-08-07, 7:11 pm

> With this restriction in place, however, would I be able to do the=20
> following?=20


> // fetch a detched object
> Query q =3D pm.newQuery(Foo.class);
> q.setUnique(true);
> Foo foo =3D (Foo) q.execute();


"detachAllOnCommit" will transition instances to detached *at commit*. You=
=20
have no commit here (using nontransactionalRead ?). If you have tx.begin(),=
=20
tx.commit() around it then its definitely fine. Nothing in the spec=20
definition of "detachAllOnCommit" implies (to me) that queries run with=20
non-tx read will do the detach.

> // make it dirty:
> foo.setBar("bar");


"foo" : detached-clean -> detached-dirty

> // attach
> pm.currentTransaction().begin();
> pm.makePersistent(foo);


"foo" : detached-dirty -> persistent-clean

> pm.currentTransaction().commit();


"foo" : persistent-clean -> detached-clean

> // dirty it once more
> foo.addBaz("baz");


"foo" : detached-clean -> detached-dirty

> // and attach it a second time


"foo" : detached-dirty -> persistence-clean

> - wouldn't this cause the JDOUserException you mention above?=20


No. If referring to the same PM, the object would have been removed from L1=
=20
cache at detach. The exception I was referring to was if you did a separate=
=20
PM.detachCopy() or detached it from a different PM and *then* tried to atta=
ch=20
to the same PM as one that already had it.




=2D-=20
Andy =A0(Java Persistent Objects - http://www.jpox.org)

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com