您好我是Java spring boot的初学者。我试图使用以下方法修改特定记录:
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);
但我收到错误“无法提取结果集”
任何人都可以为此指导我。我能够从database.Issue读取条目只在我尝试任何修改查询时发生。
提前致谢。
答案 0 :(得分: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。
答案 1 :(得分:1)
添加@Modifying
注释,并声明您的方法返回int
。
请参阅:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.modifying-queries
答案 2 :(得分: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);
让我知道它是否正确