首页 > 解决方案 > JPA条件更新中的Sql Case表达式

问题描述

我有一个命名查询:

"UPDATE student SET student.marks = " +
"    CASE WHEN student.name in :" + nameListOne + 
"         THEN 10 ELSE marks " + 
"     END  , student.class = 6 WHERE student.name in :" +  namelistOneAndTwo

我如何使用标准更新来实现这一点。这只是一个示例,我想了解如何在标准更新中使用案例表达式。

标签: sqljpacasecriteria-api

解决方案


只需进行两次更新可能会更容易。不确定“nameListOne”是什么,我假设这是动态 SQL 查询字符串中的某个参数。

UPDATE student 
   SET marks = 10
 WHERE name IN nameListOne;

UPDATE student
   SET class = 6
 WHERE name IN nameListOneAndTwo;

保持简单和直观是有一些价值的。


推荐阅读