为什么第一个查询有效,而第二个查询无效?(Spring应用程序JPA)



我有两个Query要在Spring项目中使用(使用JPA(。第一个得到一个帐户,这是正确的。对于第二个,我希望它能够更新数据库中的"禁用"字段。代码如下:

// This is the first Query (works correctly)
@Query(value = "SELECT * FROM accounts WHERE email = ?1", nativeQuery = true)
Account findByEmailAddress(String emailAddress);
// This is the second Query (doesn't work)
@Modifying
@Query(value = "UPDATE accounts SET disabled = 1 WHERE email= ?1 ", nativeQuery = true)
int disableAccountByEmail(String emailAddress);

我确实读到了我需要添加@Modification的地方,这将返回int或void。但当我尝试测试它是否有效时,我会得到一个TransactionRequiredException错误,上面写着:执行更新/删除查询

尝试使用下面的更新查询

@Transactional
@Modifying(clearAutomatically = true)

最新更新