私は簡単な質問があります。私は、これが私たちのプロジェクトの設定を休止が見つかりました:Hibernate XMLマッピング:Lazy FalseまたはFetch Select?
<many-to-one name="employee"
class="com.myapp.Employee"
cascade="merge"
lazy="false"
fetch="select">
<column name="employee_id"
sql-type="bigint"
not-null="true"/>
</many-to-one>
ははFetching Strategiesをもとに、「すべてのコレクションとエンティティレイジーロード」を意味を「選択」=フェッチしません。しかし、lazy = "false"と書いてを意味するのは遅延ロードではありません。上記の設定では、「レイジーローディングを無効にし、レイジーローディングを有効にする」と記載しています。実際には、これはプロパティが遅延ロードされていることを意味しますか?
だから私のようにその設定を短縮することができます:
<many-to-one name="employee"
class="com.myapp.Employee"
cascade="merge"
fetch="select">
<column name="employee_id"
sql-type="bigint"
not-null="true"/>
</many-to-one>
しかしは=フェッチデフォルトモードを "選択" されていませんか?実際には、私は同じ設定を次のように宣言できます:
<many-to-one name="employee"
class="com.myapp.Employee"
cascade="merge">
<column name="employee_id"
sql-type="bigint"
not-null="true"/>
</many-to-one>
正しいですか?違う?アイデア?おかげ
私は遅延ロードを有効にしたい場合は、私は怠け者=「true」をと削除怠惰=「false」をを追加する必要がありますか?
両方のプロパティを追加するのは冗長ではありませんか?彼らはお互いを否定しないのですよね? – chris