java - JPA删除不执行

标签 java spring hibernate jpa repository

如果我在下一行立即抛出异常,则无法从数据库中删除。

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/

相关文章:

java - 如何从 map 中的集合中删除元素

java - JPA/Hibernate 映射 : “QuerySyntaxException: Player is not mapped…”

java - 由 : java. lang.RuntimeException : Cannot run Liquibase, liquibase.datasource 未设置引起

Java类名作为注解属性

java - 使用单个正则表达式从一个字符串中提取几个子字符串

java.math.BigDecimal 无法转换为 [Ljava.lang.Object;

java - WebApplicationInitializer 中的 web.xml 属性

java - 即使使用@Fetch(FetchMode.JOIN),JPA + Hibernate 也会出现太多查询问题

java - SAP 行业特定解决方案的可定制性有多容易?

java - Spring Boot应用程序属性暂存和生产