アイデンティティマップ
すべてのロードされたオブジェクトをマップに保持し、各オブジェクトが 1 回のみロードされるようになります。参照時にマップを使用してオブジェクトを検索します。
完全な説明については、EAAの P の 195 ページを参照してください。
古いことわざに、「2 つの時計を持っている人は正確な時間を知らない」というものがあります。2 つの時計で混乱するなら、データベースからオブジェクトをロードするとさらに大きな混乱が生じる可能性があります。注意しないと、同じデータベースレコードからデータが 2 つの異なるオブジェクトにロードされる可能性があります。その後、両方を更新すると、変更内容をデータベースに正しく書き出すのに苦労することになります。
これと関連して、明らかなパフォーマンスの問題があります。同じデータを複数回ロードすると、リモートコールに多大なコストが発生します。したがって、同じデータを 2 回ロードしないことは、正確性だけでなく、アプリケーションの速度向上にも役立ちます。
アイデンティティマップは、1 つのビジネス取引でデータベースから読み取られたすべてのオブジェクトの記録を保持します。オブジェクトが必要なときは、アイデンティティマップを最初に確認して、すでに持っているかどうかを確認します。