开发者社区> 问答> 正文

Spring data jpa中如何实现批量更新??报错

有一个商品实体, 每个商品针对不同的会员等级会有不同的价格, 如

goodsId level price
1 1 10
1 2
9
1 3 8

当更新商品的时候想批量更新价格,就向下面这样


@Query(value = "update GoodsPrice set price = :price where goodsId=:goodsId and level=:level")
  void batchUpdate(List<GoodsPrice> goodsPriceList);

但是Spring Data Jpa不支持上述写法,报错



Caused by: java.lang.IllegalArgumentException: Name for parameter binding must not be null or empty! For named parameters you need to use @Param for query method parameters on Java versions < 8.

到底Spring data jpa中如何实现批量更新呢?save(Iterable<S> entities)不算

能不能同时使用Spring data jpa和spring jdbc template呢?



展开
收起
爱吃鱼的程序员 2020-06-12 10:24:54 2874 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    继承 JpaRepository接口有支持批量操作的方法在。

    可以同时使用jpa跟jdbcTemplate的,去注入一下就可以.

    个人感觉你这个写的问题挺大。第一需要 @Modify,第二需要三个参数。通过@PersistenceContext注解注入EntityManager对象然后自己写QL语句,用EntityManager对象来做持久化操作就好了!这个地方需要自行实现
    2020-06-12 10:25:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载