0

スケルトン(メタデータ)と大きなデータオブジェクトを持つデータモデルがあります。スケルトンをメモリに保持し、データオブジェクトへの弱参照を保持したいと思います。プレーンJavaでこれを実装する方法、WeakHashMapを作成してクリーンアップする方法などを理解しています。しかし、GCされた後、データオブジェクトを復活させるための最良の方法は何でしょうか。

データオブジェクトのフィールドに割り当てたテクニカルキーをマップに追加して、もう一度見つけることができるようにする必要がありますか?または、db.ext()。getId()を呼び出して、このIDをテクニカルキーとして使用する必要がありますか?もしそうなら、親をロードするときにこれらのキーをどのように取得しますか?何を指示してるんですか?

4

1 に答える 1

0

大きなデータ オブジェクトに技術的なキーを追加します。次に、この技術キーをメタデータ クラスに保存します。大きなデータオブジェクトを取得すると、それは技術的なキーによって取得されます。それは非常に簡単な解決策です。

Db4o は実際には弱参照を使用して同じオブジェクトを返し、不要な逆シリアル化を回避します。したがって、GC によって収集されていないオブジェクトを要求すると、db4o は同じオブジェクトを返します。

于 2009-12-16T15:51:55.510 に答える