如果我在下一行立即抛出异常,则无法从数据库中删除。
public void verifyExpiration(RefreshToken token) {
if (token.getExpiryDate().compareTo(Instant.now()) < 0) {
this.delete(token.getToken());
throw new TokenException("Refresh token was expired: " + token.getToken());
}
}
public void delete(String token) {
this.refreshTokenRepository.deleteByToken(token);
}
我错过了什么?
最佳答案
在SpringBoot中,如果你想在抛出异常的同时完成事务,可以使用noRollbackFor
作为@Transactional
注解,如下所示:
@Transactional(noRollbackFor=TokenException.class)
关于java - JPA删除不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69106383/