JPAでデータをまとめて保存する方法

JPAで一括してデータを保存する方法:

  1. 永続化
EntityManager entityManager = ...;
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
for (Entity entity : entityList) {
entityManager.persist(entity);
}
transaction.commit();
  1. フラッシュ()
EntityManager entityManager = ...;
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
for (Entity entity : entityList) {
entityManager.persist(entity);
entityManager.flush(); // 每次保存后立即刷新到数据库
}
transaction.commit();
  1. createQuery(NativeQuery)
EntityManager entityManager = ...;
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
Query query = entityManager.createNativeQuery("INSERT INTO table_name (column1, column2) VALUES (?, ?)");
for (Entity entity : entityList) {
query.setParameter(1, entity.getColumn1());
query.setParameter(2, entity.getColumn2());
query.addBatch(); // 添加到批处理中
}
query.executeBatch(); // 执行批处理
transaction.commit();

バッチ操作を行う場合、データベースのパフォーマンスへ影響が出る可能性があるので、パフォーマンスやリソースの消費量を考慮して、使用は慎重に行う必要があります。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds