如何使用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);
但它抛出异常,
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实现批量更新呢?
我认为根据 Spring Data JPA 这是不可能的docs http://docs.spring.io/spring-data/jpa/docs/current/reference/html/。你必须看看普通的 JDBC,有几种关于批量插入/更新的方法 http://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#addBatch%28java.lang.String%29.
然而,你可以用 Hibernate 相当简单地做到这一点 https://vladmihalcea.com/the-best-way-to-do-batch-processing-with-jpa-and-hibernate/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)