我正在嘗試使用此查詢更新員工工資。為什么我收到unexpected token:near line 1 in JPA Query錯誤。
@Query("update employee set sal= sal 2000 where salary < :sal")
void updateEmployeeSalary(@Param("sal") Long sal)
這是我的服務方法
List<Employee> updateSalary(Long sal){
repo.updateEmployeeSalary(sal);
return repo.findAll();
}
uj5u.com熱心網友回復:
您需要@Modifying 注釋:
@Modifying
@Query("update employee set sal= sal 2000 where salary < :sal")
void updateEmployeeSalary(@Param("sal") Long sal)
uj5u.com熱心網友回復:
如果要在操作中執行Update和Delete操作Spring Boot JPA要宣告@Modifying注釋
為什么要宣告@Modifying注解 ->
增強@Query注解不僅可以執行 SELECT 查詢,還可以執行 INSERT、UPDATE、DELETE 甚至 DDL 查詢
如果我們忘記宣告@Modifiying注解怎么辦->
編譯器拋出例外InvalidDataAccessApiUsageException意味著DML操作不支持查詢。
clearAutomatically=true 定義我們是否應該在執行修改查詢后清除底層持久化背景關系
修改后的存盤庫:
@Modifying(clearAutomatically=true)
@query("update Employee set salary = salary 2000 where salary< :sal")
uj5u.com熱心網友回復:
我認為您需要撰寫這樣的查詢
@Modifying
@query("update Employee e set e.salary = e.salary 2000 where e.salary< :sal")
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/342756.html
下一篇:從ENUM回傳值
