使用Spring JPA/Hibernate进行不同值的批量更新

3

这里有一个Java实体类:

class Call {
   int callId,
   String callStatus
}

通话状态可能的取值为:SETUP(准备中),INSTALLED(已安装),FINISHED(已完成)。

calls_statuses 中包含以下数值:

callId callStatus
1       SETUP
2       INSTALLED
3       INSTALLED

然后我需要更改callId 1和2的状态为:

1       INSTALLED
2       FINISHED

具有callId 3的通话结束了。

是否可以使用Spring JPA/Hibernate进行批量更新?

1个回答

0

尝试像这样做,使用自定义的JPQL查询:

    @Query("Update CallStatuses cs SET cs.callStatus = CASE WHEN (cs.callId IN :calls1) THEN :callStatusInstalled WHEN (cs.id IN :calls2) THEN :callStatusFinished END")
    batchUpdateCallStatus(@Param("calls1")List<int> calls1,
                          @Param("calls2") List<int> calls2,
                          @Param("callStatusInstalled") String callStatusInstalled, 
                          @Param("callStatusFinished") String callStatusFinished);

可能是重复内容: JPQL - 在多个条件下进行更新


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接