ホームページ >Java >&#&チュートリアル >Hibernate で一括挿入更新操作を実行するにはどうすればよいですか?

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

WBOY
WBOY転載
2023-08-27 23:17:061374ブラウズ

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 までご連絡ください。