Hibernate批量插入未按预期执行,每次save生成单条Insert查询
Hibernate批量插入异常问题
我有10条记录,尝试使用Hibernate实现批量插入,期望每5条记录执行一次插入操作。但当前问题是每次调用session.save()时都会生成单条Insert查询,若插入1000条记录则会生成1000条查询。
当前代码片段
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条独立的Insert查询语句
- Hibernate配置截图内容:展示了当前Hibernate的核心配置参数
编辑1:将实体类主键生成策略改为Sequence后,出现错误:无法从指定序列获取下一个值
实体类截图内容:展示了实体类主键字段的注解配置
编辑2:即使设置生成策略为Sequence,仍生成多条独立的Insert查询,控制台依旧输出多条单独的Insert语句
修改后的实体类主键代码
@Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="users_seq") @SequenceGenerator(name="users_seq" , allocationSize = 1, sequenceName = "DIM_ASSET_GROUP_SEQ") @Column(name="ASSET_GROUP_ID", updatable = false, insertable = false) private int assetgroupid;
内容的提问来源于stack exchange,提问作者Geeth
相关产品推荐
相关产品推荐

