Yes, it works fine if I do not detach second time... 2010/1/14 Jason (Google) <apija...@google.com>
> Does your application work if you don't detach the entity a second time? > For instance, are you able to update the entity, re-cache it, then retrieve > it and pass it back into makePersistent without any errors? I was under the > impression that passing an entity into makePersistent re-attaches the > entity, but it's also possible that you don't need to explicitly detach it > more than once. > > - Jason > > On Tue, Jan 12, 2010 at 7:15 AM, Prashant Gupta <nextprash...@gmail.com>wrote: > >> Hi, >> >> Here is my doubt... >> >> Suppose I created a new Entity : Entity ety = new Entity(); >> Created a new persistent manager and made it persistent : >> pm.makePersisent(ety); >> Detached it and cached to memcache : cache.put("myentity", >> pm.detachCopy(ety)); >> pm.close(); >> >> now, in the same request or subsequent request, I need that entity again. >> So, I picked it from memcache : Entity ety = cache.get("myentity"); >> Made some changes : ety.doSomeChange(); >> Opened a new persistent manager and persisted it : pm.makePersistent(ety); >> Now I want to update memcache also : cache.put("myentity", * >> pm.detachCopy(ety)*); // line 204 >> pm.close(); >> >> Is it required to detach entity second time? While trying to detach is >> second time I am getting following exception; >> >> javax.jdo.JDOUserException: Object of type "xyz.Entity" and identity "ety" >> was not detached correctly. Please consult the log for any possible >> information. >> at >> org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:375) >> at >> org.datanucleus.jdo.JDOPersistenceManager.jdoDetachCopy(JDOPersistenceManager.java:1110) >> at >> org.datanucleus.jdo.JDOPersistenceManager.detachCopy(JDOPersistenceManager.java:1134) >> at HelperClass.makePersistent(HelperClass.java:204) >> ..... >> >> I am not able to point out any other reason for this exception. >> >> Following is my Entity Class : >> >> @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = >> "true") >> public class Entity implements Serializable{ >> >> @SuppressWarnings("unused") >> @Persistent(primaryKey = "true") >> private String ID; >> >> @Persistent >> private String Version; >> >> @Persistent >> private Boolean Enabled; >> @Persistent >> private Date TimeStamp; >> @Persistent >> private LinkedList<Key> Permissions; >> @SuppressWarnings("unused") >> @Persistent >> private ModuleType Type; // ModuleType is an Enum Type >> >> >> -- >> 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<google-appengine-java%2bunsubscr...@googlegroups.com> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-appengine-java?hl=en. >> >> > > -- > 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<google-appengine-java%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > >--
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.