0

オブジェクトの保存にはdatanucleusとMongoDBを使用しています。遅延読み込みの問題を検出しました。

私のクラスの1つは:

    public class Member  implements Serializable{
            private static final long serialVersionUID = 1L;
            @PrimaryKey
            @Persistent(defaultFetchGroup = "true", valueStrategy = IdGeneratorStrategy.IDENTITY)
            private String key;

            private String username; 
            @Persistent(defaultFetchGroup="true",dependent="true")
            private Parameter param = null;
    }

そして、このオブジェクトを取得するためのコードは次のとおりです。

    Transaction tx = pm.currentTransaction();
    tx.begin();
    Member member = pm.getObjectById(Member.class,"MyID");
    tx.commit();
    //if I check here, the field "param" is null.

チェックすると、フィールド「param」はnullです。ただし、デフォルトでパラメータをロードするようにメタデータを設定しました。おそらく、ドライバーMongoDB-JDOはメタデータ「defaultFetchGroup」をサポートしていません。

何が起こるか教えていただけますか?

どうもありがとう。

4

1 に答える 1

1

「ここ」(トランザクション外)の状況は、オブジェクトのライフサイクルと有効にした永続化オプションに完全に依存します。そのリンクはそれを定義します。オブジェクトがHOLLOWである可能性が高いため、フィールドがアンロードされ、「datanucleus.RetainValues」を設定していません。

于 2012-10-17T10:54:11.923 に答える