0

JPAを使用してGoogleAppEngineでエンティティをクエリすると、というフィールドjdoDetachedStateがオブジェクトに自動的に追加されます。JPAObjectLifecycleに何かがあると読みました。例えば:

{"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は、私のオブジェクトに自動的に追加されるものの1つです。

私はそれを追加することによってなんとか修正しました:

@Transient   
protected Object[] jdoDetachedState;  

私のエンティティに設定し、nullに設定します。

私の質問は、状態のライフサイクルに目的がない場合に備えて、最初にDetachedStateをnullに設定してエンティティをクエリできるかどうかです。

私は試した:

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

しかし、それはうまくいきませんでした。

4

0 に答える 0