Hi, I'm new in JDO, so I think this problem may sounds stupid...
I'm working on my application on App-engine, and feel really confused
about how to use the PersistenceManager in my app...

1) At the very beginning I tried to maintain only one static pm
instance in my app, but I found that when I try to update the entities
in datastore, it does not write back, since I do not close the pm.

2) Then, I tried to get a new pm in every request, and after the
request I close it. But I still store the pm as a static field in a
DaoBase class. the code looks like:

PersistenceManager pm = PFM.get().getPersistenceManager();
DaoBase.setPm(pm);

....do the request...

DaoBase.getPm().close();
DaoBase.setPm(null);

But when multiple requests come concurrently, things becomes messy and
sometimes the DaoBase.getPm() will returns null during a request.

3) Use new pm each time when reading the datastore, then detach the
object from pm, close the pm. Then during update time, use a new pm to
update it. But the problem here is when there is some owned
relationship between datastore entities, a detatched object will not
fetch the data automatically, like:

/////////////////////////////
class Address {
....
}

class Employee {
   private List<Address> addressList;

   public List<Address> getAddressList() {
        return addressList;
    }
}
///////////////////////////////
the getAddressList() will always return null.

So...What is the right way to use PersistenceManager?



--

You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.


Reply via email to