Hibernate で一括挿入更新操作を実行するにはどうすればよいですか?

WBOY
リリース: 2023-08-27 23:17:06
転載
1245 人が閲覧しました

Hibernate で一括挿入更新操作を実行するにはどうすればよいですか?

この記事では、Hibernate で一括挿入/更新を実行する方法を説明します。

SQL ステートメントを実行するたびに、データベースへのネットワーク呼び出しを行って実行します。ここで、データベース テーブルに 10 個のエントリを挿入する必要がある場合、10 回のネットワーク呼び出しを行う必要があります。代わりに、バッチ処理を使用してネットワーク呼び出しを最適化できます。バッチ処理を使用すると、単一のネットワーク呼び出しで一連の SQL ステートメントを実行できます。

これを理解して実装するために、エンティティを定義しましょう −

リーリー

Hibernate でバッチ処理を有効にするには、アプリケーションにプロパティを追加する必要があります

プロパティ ファイル:

@Entity
public class Parent {
   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   private long id;
   private String name;
   // Getters
   //Setters
}
ログイン後にコピー

次に、EntityManager の永続関数 データベースにデータを挿入する必要があります

###例### リーリー ###出力### リーリー

コンソールから、親テーブルへの挿入がバッチ サイズ 3 で実行されていることがわかります。

Hibernate はエンティティを永続化コンテキストに保存するため、エンティティを永続化するときに OutOfMemoryException が発生する可能性があります。したがって、最適化の目的で、各バッチの後にエンティティ マネージャーのフラッシュ() およびクリア() を使用できます。

バッチ更新とは、1 回のネットワーク呼び出しで大量のデータを更新することを意味します。

バッチ更新の場合、プロセスは同じです。次の 2 つのステートメントをアプリケーション プロパティ ファイルに追加して、更新プロセスを実行する必要があります。

リーリー ###例###

データを更新するコード-

リーリー

Hibernate はこれらのステートメントをバッチにバンドルして実行します。

###出力### リーリー

コンソールからわかるように、親テーブルのデータ更新はバッチ サイズ 3 で実行されます。

以上がHibernate で一括挿入更新操作を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!