我有10条记录,我试图在hibernate中使用批量插入一次插入5条记录。但这里的问题是,在每个session.save()之后,它都会生成插入查询。因此,如果我想插入1000条记录,它将生成1000个插入查询。我想一次插入5条记录。下面是代码片段
public void saveobjects(List<DBDimAssetGroup> objects) {
Session session = super.getsession();
for (int i = 1; i <= 10; i++) {
System.out.println("Statement Queued : " + i);
DBDimAssetGroup obj = objects.get(i);
session.save(obj);
if (i % 5 == 0) {
session.flush();
session.clear();
}
}
session.close();
}
以下是控制台为10个插入
生成10个查询的屏幕截图
下面是Hibernate配置
编辑1:在实体类中将GenerationType更改为Sequence后,我得到以下错误
下面是实体类
1条答案
按热度按时间yc0p9oo01#
只有当为实体的ID生成过程设置了hibernate_sequence时,此功能才有效,而不是使用由DB提供程序管理的AUTO或IDENTITY。
更新(示例):
@Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator=“users_seq”)@SequenceGenerator(name=“users_seq”,allocationSize = 1)