当前位置: 首页 > 面试题库 >

每当我说@Transactional时,对每个选中的异常回滚

霍伟彦
2023-03-14
问题内容

由于程序员被迫捕获所有已检查的异常,因此在出现任何问题时都会抛出已检查的异常。我想回退任何这些期望。rollbackFor=Exception.class在每个@Transactional注释上书写都非常容易出错,因此我想告诉spring:“每写一次@Transactional,我的意思是@Transactional(rollbackFor=Exception.class)”

我知道,我可以创建一个自定义批注,但这似乎是不自然的。

那么有没有办法告诉spring它应该如何在全球范围内处理检查的异常情况呢?


问题答案:

自定义快捷方式注释
我知道,我可以创建一个自定义批注,但这似乎是不自然的。

如果发现你在许多不同方法上重复使用@Transactional使用相同的属性,那么Spring的元注释支持使你可以为特定用例定义自定义快捷方式注释。

样例代码
这是你的用例的示例注释:

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Transactional(rollbackFor=Exception.class)
public @interface MyAnnotation {
}

现在用@MyAnnotation(你会想到一个更好的名称)注释你的服务和/或方法。这是经过良好测试的功能,默认情况下有效。为什么要重新发明轮子?



 类似资料:
  • 问题内容: 由于程序员被迫捕获所有已检查的异常,因此在出现任何问题时都会抛出已检查的异常。我想回退任何这些期望。在每个注释上书写都非常容易出错,因此我想告诉spring:“每写一次,我的意思是”。 我知道,我可以创建一个自定义批注,但这似乎是不自然的。 那么有没有办法告诉spring它应该如何在 全球范围内 处理已检查的expeting ? 问题答案: 自定义快捷方式注释 我知道,我可以创建一个自

  • 给定在类上定义的以下注释。 Spring还会在抛出未检查()异常加上时回滚吗?或者给定上面的注释,它是否只回滚列出的异常,即在本例中?

  • 问题内容: 编辑:我正在使用MySQL,我发现了另一个具有相同问题的帖子,但是它在Postgres中。我需要MySQL。 获取SQL中另一列的每个值的最通用值 在广泛搜索本网站和其他网站之后,我提出了这个问题,但没有找到符合我预期目的的结果。 我有一个人表(recordid,personid,transactionid)和一个事务表(transactionid,rating)。我需要一条SQL语句

  • 问题内容: 当我尝试在代码中执行HQL时,发生以下异常。我在各个站点中进行了检查,发现antlr.2.7.6.jar shd位于类路径中。我在项目中检查了此内容,发现在我的Maven依赖项中存在该内容。因此,不应有任何此类问题。但是我仍然遇到这个问题。谁能在这方面帮助我。我在“ empList = getHibernateTemplate()。find(“来自Employee”);“行中收到此错误

  • 我需要拦截每个抛出的异常并对其进行处理。我正在使用这部分代码: 这个切入点似乎只影响公共方法(我想这是Spring AOP预期的?),但它只在某些方法中打印字符串,例如,在我的Spring配置类中声明的方法(我猜是因为它们在应用程序启动之前被初始化),而不是在其他方法中。 我试图让这方面为任何抛出的异常工作,但没有成功。这与我使用Spring AOP而不是完整的AspectJ有什么关系吗? 此外,