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

Java 为什么第一个查询有效而第二个查询无效?(Spring应用程序JPA),java,sql,spring,jpa,Java,Sql,Spring,Jpa,我想在Spring项目中使用两个查询(使用JPA)。第一个获得了一个帐户,这是正确的。对于第二个,我希望它能够更新数据库中的“disabled”字段。代码如下所示: // This is the first Query (works correctly) @Query(value = "SELECT * FROM accounts WHERE email = ?1", nativeQuery = true) Account findByEmailAddress(String

我想在Spring项目中使用两个查询(使用JPA)。第一个获得了一个帐户,这是正确的。对于第二个,我希望它能够更新数据库中的“disabled”字段。代码如下所示:

// 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);

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

 @Transactional
 @Modifying(clearAutomatically = true)

尝试使用下面的更新查询

 @Transactional
 @Modifying(clearAutomatically = true)