1. ホーム
  2. java

Hibernateのload()とget()の利点は何ですか?

2023-10-11 06:07:58

質問

の利点は何なのか、誰か教えてください。 load()get() をHibernateで使うか?

どのように解決するのですか?

Hibernateのload()とget()の利点は何ですか?
load() get()
使用のみ load() メソッドは、オブジェクトが存在することが確実な場合のみ使用してください。 オブジェクトが存在することが確かでなければ get() メソッドのいずれかを使用します。
load() メソッドは、ユニークIDがデータベースで見つからなかった場合、例外を投げます。 get() メソッドは、一意の ID がデータベースで見つからない場合、null を返します。
load() はデフォルトでプロキシを返すだけで、プロキシが最初に起動されるまでデータベースはヒットしません。 get() はすぐにデータベースをヒットさせます。

ソース

プロキシ というのは、hibernateはデータベースを叩くことなく、与えられた識別子の値を持つ何らかの偽のオブジェクトをメモリ上に用意することを意味します。

例として

もし私たちが session.load(Student.class,new Integer(107));

を呼び出すと、ハイバーネートはメモリ上に ID 107 の偽の Student オブジェクト [row] をひとつ作成しますが、Student クラスの残りのプロパティは初期化さえされません。

ソース