私は現在、自分の小さなORMを動かしています。データベースから同じエンティティを複数回ロードするのを防ぐために、正規化マッピングを作成する作業に直面しています。Javaで正規化マッピングを実装する方法は?
私の現在のアプローチはHashMap<Object, WeakReference<Object>>
です。キーは、マップされたデータベースエンティティ(複合キーの場合はArrayList<Object>
)の主キーで、値はWeakReference<Object>
です。
私の主な問題は、マップをクリーンアップする方法ですか?オブジェクトがもう使用されなくなると、マップ内の弱い参照はnull
になります。次回のルックアップでしか見つからないでしょう。彼らがクリアされたら弱い参照をReferenceQueue
に登録させてから、何か調べるたびにそのキューをチェックすることができます。クリアされた参照は、どのオブジェクトがクリアされたかについて私には何のヒントも与えていないので、マップにキーを格納するためにサブクラスWeakReference
を持っていなければならないと思います。
これは方法ですか、これを実装する簡単な方法がありますか?
私は最初にこのライブラリを追加することを躊躇しましたが、今は私がしたので、なぜ私はそれを早くやっていないのだろうかと思います。この素晴らしい答えをありがとう! –