试图谷歌这一点,没有发现任何接近。
我在Spring Boot项目中使用JPA和Hibernate。我想知道JPA相当于
UPDATE balance
SET amount = amount - :transactionAmount
WHERE accountId = :accountId
这样做的目的是执行整个更新,而不会冒另一条记录更新值并丢失金额的风险。
答案 0 :(得分:2)
UPDATE Balance b
SET b.amount = b.amount - :transactionAmount
WHERE b.accountId = :accountId
记住JPQL是针对逻辑模型而不是数据库执行的,因此名称是实体的名称(读取:Java类名称),因此Balance b
。您还需要对标识符进行限定,因此b.amount
代替amount
。当然,SET
在WHERE
:)