【问题标题】:Batch Update by different values using Spring JPA/Hibernate使用 Spring JPA/Hibernate 按不同值批量更新
【发布时间】:2020-09-14 16:47:31
【问题描述】:

有Java实体类:

class Call {
   int callId,
   String callStatus
}

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 进行批量更新?

【问题讨论】:

    标签: java spring hibernate jpa


    【解决方案1】:

    尝试这样的事情,自定义 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 - Update with Multiple where conditions

    【讨论】:

      猜你喜欢
      • 2013-07-11
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 2019-05-02
      • 2018-02-17
      • 2019-09-09
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多