0

当我使用 JPA 在 Google App Engine 中查询实体时,一个名为的字段jdoDetachedState会自动添加到我的对象中。我读到它与 JPA 对象生命周期有关。例如:

{"id":216001,"m_Name":"x","jdoDetachedState":[{"key":216001,"targetClassName":"util.Profile","hashCode":1061531169,"keyAsObject":null},null,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[]]}

问题是,在反序列化(使用 GSON)实体并访问 getName() 之后,我得到:

Caused by: java.lang.ClassCastException: java.util.ArrayList at util.Profile.jdoGetm_Name

jdoGetX 是自动添加到我的对象中的另一件事。

我设法通过添加来修复它:

@Transient   
protected Object[] jdoDetachedState;  

到我的实体并将其设置为空。

我的问题是我是否可以首先查询将 Detached State 设置为 null 的实体,以防我在状态生命周期中没有任何目的。

我试过了:

EMF.get().createEntityManager().deatch(profile);

但它没有用。

4

0 回答 0