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.

Reply via email to