在本文中,我们将看到如何在Hibernate中执行批量插入/更新。
每当我们执行一条sql语句时,我们都是通过对数据库进行网络调用来完成的。现在,如果我们必须向数据库表中插入 10 个条目,那么我们必须进行 10 次网络调用。相反,我们可以通过使用批处理来优化网络调用。批处理允许我们在单个网络调用中执行一组 SQL 语句。
为了理解和实施这一点,让我们定义我们的实体−
@Entity
public class Parent {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
// Getters
//Setters
}
登录后复制
为了在Hibernate中启用批处理,我们需要向我们的应用程序添加一个属性
properties文件:
spring.jpa.properties.hibernate.jdbc.batch_size=3
登录后复制
现在,我们需要执行EntityManager的persist函数将数据插入数据库
示例
@Autowired
private EntityManager entityManager;
@Test
Public void InsertInBatch(){
for (int i = 0; i