This sounds familiar...

Craig

Begin forwarded message:

Hi all,

I have a question regarding evicting an embedded object.

When I call an evict on a persistent non-transactional object and if I call isPersistent() before and after evict then both returns true.

When I do the same for an embedded object then I get false on the isPersistent() call after evict.

I did not find any documentation around evicting an embedded object.

The way I understand Evict is that it removes the object from cache but why is the persistence capability of the embedded object is removed and also why is it not consistent with a non-embedded object ?

Here is a sample code, lets say there is an Order object (@Entity) and comment object (@Embeddable) that is embedded inside Order.

The following returns true, true ( outside transaction boundaries):

System.out.println("isPersistent:" + OpenJPAEntityManager.isPersistent(ord));
OpenJPAEntityManager.evict(ord);
System.out.println("isPersistent:" + OpenJPAEntityManager.isPersistent(ord));

The following returns true, false ( outside transaction boundaries):

Comment ord_cmt = ord.getComment();
System.out.println("isPersistent:" + OpenJPAEntityManager.isPersistent(ord_cmt));
OpenJPAEntityManager.evict(ord_cmt);
System.out.println("isPersistent:" + OpenJPAEntityManager.isPersistent(ord_cmt));

Please let me know if you need a complete test case.

OpenJPA version: openjpa-1.1.0-r422266:657916

Regards,
Ravi.


--
View this message in context: 
http://n2.nabble.com/Evicting-an-embedded-object.-tp2528068p2544592.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Craig L Russell
Architect, Sun Java Enterprise System http://db.apache.org/jdo
408 276-5638 mailto:[email protected]
P.S. A good JDO? O, Gasp!

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to