2017-06-16 101 views
0

嗨,我是一個Java春季啓動初學者。我試圖修改使用一個特定的記錄:如何使用spring api使用JPA查詢進行軟刪除?

adminRepo.updateAllActive(id); // method Call 

庫:

@Query(value= "update admin a set a.active = 0 where a.id = :id " ,nativeQuery=true) 
AdminEntity updateAllActive(@Param("id") Integer id); 

但我得到錯誤「無法提取結果集」

任何人都可以指導我的。我能夠從數據庫中讀取條目。僅當我嘗試任何修改查詢時纔會發生問題。

在此先感謝。

+3

SQL'UPDATE'不返回'ResultSet',但'@ Query'需要一個'ResultSet' ... –

回答

2

更新查詢返回指示受影響的條目數的整數值,可以覆蓋到返回void,所以你應該宣佈你的方法的返回類型爲void,如果你不關心計數:

@Modifying 
@Query(value= "update admin a set a.active = 0 where a.id = :id" ,nativeQuery=true) 
void updateAllActive(@Param("id") Integer id); 

此外,您還需要將您的查詢標記爲@Modifying,有關更新查詢的更多信息,請參閱documentation

+0

謝謝。有效。 –

0

@Modifying 
    @Query("Update Users u SET u.userKey=:userKey, u.phoneNumberVerified=true, u.name=:name, u.surname=:surname, u.phoneNumberVerified=true WHERE u.phoneCode=:phoneCode AND u.phoneNumber=:phoneNumber ") 
    void updateUsers(@Param("userKey") String userKey, @Param("phoneCode") String phoneCode, 
      @Param("phoneNumber") String phoneNumber, @Param("name") String name, @Param("surname") String surname); 

讓我知道這是否正確