2

JDO はデータベース モデルのすべての子を一度に取得できますか?

お気に入り:

class Parent {
 @Persistent(mappedBy="parent") 
 private Set<Children> children;
}

class Children {
 @Persistent
 private Parent parent;
 @Persistent
 private String name;
}

私の場合、一度に取得する多数の親があります。子は遅延フェッチされるため、子へのアクセスには多くの時間がかかります。

JDO (Datanucleus) は、親と一緒に一度にフェッチすることをサポートしていますか?

また、別のクエリですべての子を独立してフェッチし、後でレベル 2 キャッシュに入れようとしましたが、それでもフェッチされます (jdo はそれらの関係を知らないのでしょうか? ForeignKey (親 ID) がフェッチされていないためです)最初?)

データ構造をより速く読み取る方法はありますか?

乾杯、

1月

4

1 に答える 1

4

Fetch Groupsを使用していますか? あなたの Child クラスは、おそらくデフォルトのフェッチ グループに含まれていません。

オブジェクトが JDO によってデータストアから取得されるとき、通常、すべてのフィールドがすぐに取得されるわけではありません。これは、効率化を目的として、オブジェクトの最初のアクセス時に特定のフィールド タイプのみが取得され、アクセス時に他のオブジェクトが取得されるためです (遅延読み込み)。読み込まれるフィールドのグループは、フェッチ グループと呼ばれます

于 2010-06-01T17:56:28.750 に答える