0

こんにちは、行の特定の列を更新したい場合は、休止状態で更新クエリを使用するか、単に休止状態のsession.update()メソッドを使用する必要があります。知ったばかり

@org.hibernate.annotations.Entity(
        dynamicUpdate = true 

注釈が設定されている場合、特定の列を更新できます。私はこれまでこれを使用したことがないので、これを使用する基準があるかどうかを知りたいだけです。これについて決定を下すためにあなたの助けが必要です。どちらのアプローチが良いでしょうか?

4

1 に答える 1

1

動的セッション更新をオフにすると、Hibernate はすべてのエンティティに対して可能なすべてのクエリをキャッシュします。したがって、Hibernate はエンティティを更新するたびに SQL を生成する必要はありません。

オンの場合、Hibernate は、キャッシュする代わりに、要求されたときに常に SQL クエリを生成します。したがって、データベースにとっては軽量ですが、Hibernate にとっては重くなります。

いつ Hibernate Dynamic Update を使用する必要がありますか? 大量の列を持つ巨大なテーブルがある場合、すべてのエンティティのすべてのクエリをキャッシュすると、通常よりもはるかに多くのメモリが消費されます。そのため、動的更新をオンにしてパフォーマンスを向上させることができます。また、デバッグしている場合は、変更された列のみが更新ステートメントに表示されるため、動的更新によりクエリが読みやすくなります。

更新クエリまたはセッション更新を使用する必要がありますか? 更新クエリは読みにくく、保守が困難です (たとえば、フィールド名が変更された場合、すべてのクエリを変更する必要がありますが、セッションの更新は影響を受けません)。

于 2013-01-31T10:37:39.570 に答える