JPA/JPQL - 批量更新

red*_*ull 4 jpa jpql

我必须在表上执行批量更新.举个简单的例子:

 UPDATE Book b SET b.amount = b.amount + 1 WHERE b IN ( :books )
Run Code Online (Sandbox Code Playgroud)

问题是b.amount可以是或者是NULL值或者是int,如果有一个NULL值,它应该表现为b.amount将等于1.

在JPA/JPQL中是否有任何"强制转换"或任何其他方式来解决此问题,

先感谢您,

问候,P

axt*_*avt 7

你应该可以使用COALESCE:

UPDATE Book b SET b.amount = COALESCE(b.amount, 1) + 1 WHERE b IN ( :books ) 
Run Code Online (Sandbox Code Playgroud)