2017-06-16 131 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); 

让我知道这是否正确