首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Spring Data JPA对非id列进行最大值+1逻辑的批量插入

如何使用Spring Data JPA对非id列进行最大值+1逻辑的批量插入
EN

Stack Overflow用户
提问于 2020-07-20 18:07:38
回答 1查看 295关注 0票数 0

我想在表中插入一个新行。主键是复合的,id和序列。序列生成逻辑为max Sequence + 1,对于同一id的每一行,以sequence + 1的最大值生成序列。

所以我通过@Query with JPA实现了这个逻辑。但是批量插入没有发生。对于数据列表,需要在循环语句中逐个执行。

请帮我找出批量/批量插入的解决方案。

代码语言:javascript
复制
@Transactional
@Modifying
@Query(value = "INSERT INTO TABLE1 (ID, SEQUENCE, NAME) VALUES (:id, ((SELECT ISNULL(MAX(SEQUENCE), 0) FROM TABLE1 WHERE ID = :id) + 1), :name)", 
nativeQuery = true)
Integer insertTable1(@Param("id") Integer id, @Param("name") String name);

寻找序列生成器的选项以及。

EN

回答 1

Stack Overflow用户

发布于 2020-07-20 19:37:12

您不能避免sql生成in loop语句,这就是后面的批处理插入。

@Transactional将立即调用提交,因此您可以尝试将其移动到外部方法级别,这样它将在所有循环完成后提交一次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62993091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档