Hibernate を使用する前は、Process スコープの ID環境で作業する贅沢がありました。つまり、データベースから同じオブジェクトを 2 回フェッチすると、常に == になります。
hibernate に移行する前はHashMap
、一意のインスタンスを保持することでこれを実現していました。結果セットをフェッチするたびに、同じオブジェクト インスタンスを返すために、このマップ内の以前のインスタンスをチェックしました。WeakReference
メモリ リークを回避し、ガベージ コレクターを支援するために、マップに配置する前に、まずこれらの一意のインスタンスをオブジェクトでラップします。
私は (この 10 年前のフレームワークから) 休止状態に移行して、最新の Java テクノロジを最新の状態に保つようにしました。そして、私は、休止状態がすぐに使える状態でこれをサポートするだろうと誤って想定しました。もちろん、独自のキャッシングを再度実装したくなります。しかし、私の目標は、最小限の自己記述コードでプロジェクトのコアをセットアップすることです。
実際、ほとんどの Web サイトは、プロセス スコープ IDをまったく使用しないように説得しようとしています。正直なところ、私は少し懐疑的ですが、なんとかなると確信しています。
現在、process-scoped-identity を背後に置くことを検討していますが、多くの結果があるようです。例: 以前は一時的なフィールドに (実行時に計算された) 情報を保存することがありました。もちろん、これは今では不可能です。
一部の Web サイトでは、EHCache フレームワークを使用してProcess スコープの IDに到達できると書いています。試しましたが、まだ成功していません。デフォルトでは明らかにオフになっており、有効にする方法の例は見つかりませんでした.
いくつかのアドバイスは大歓迎です。
編集:(より具体的に)
Process Scoped Identity
Hibernate を使用するときに達成することは可能ですか?- もしそうなら、それは良い習慣ですか、それはどのように達成できますか?