【发布时间】:2020-10-15 12:28:25
【问题描述】:
我想在更新查询中使用 Case 子句更新表的多行。
我有一个Map<String, String>,其中包含 2 列的值。键作为行的标识符,映射中的值是我要更新的列的值。
如何在 Spring Data JPA @Query 中做到这一点?
我想实现类似的目标
@Modifying
@Query("update RequestDetail rd set value = VALUE(:statusDetails) where name='Status' and RequestUuid=KEY(:statusDetails)")
void updateBulkStatus(Map<String, String> statusDetails);
但这是例外 - antlr.SemanticException: node did not reference a map。
目标是避免对 DB 进行多次更新查询。
我们有什么更好的方法可以将具有多个值的多行更新为单个列。
【问题讨论】:
-
你可以使用createNativeQuery(),它会返回一个Object[]类型的List。
标签: java spring-boot spring-data-jpa jpql