Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
たとえば、次の 2 つのテーブルのデータベースがあります: Home と Person。これらのテーブル間には 1 対多の関係があります。一つの家にたくさんの人が住んでいます。
さて、次のような状況を想定してみましょう。データベースから 1 人をロードすると、その人が住んでいる家がロードされます。次に、同じ家に住んでいる別の人を読み込みます。問題は、何をロードしているのかということです。新しいホーム オブジェクトですか、それとも最初の人のためにロードされた同じオブジェクトですか? なんで?
同じホーム オブジェクト。Hibernate は PRIMARY KEY によって、すでに手元にあるオブジェクトを追跡し、Person コンストラクターがホームを埋めるようになると、既存のオブジェクトへの参照が使用されます。
一方、Home は「遅延して」フェッチされる可能性があることに注意してください。その場合、この Home のプロキシ (プレースホルダー) のみが両方の Person のフィールドになります。