【问题标题】:Can i use spring exception translation without using spring-managed-transaction?我可以在不使用 spring-managed-transaction 的情况下使用 spring 异常翻译吗?
【发布时间】:2011-06-09 12:04:15
【问题描述】:

我正在使用 JPA 2 和 Spring 3 进行开发。

我正在为我的 Dao 类使用 @Repository,希望我可以使用 Spring 异常翻译。

但问题是,我没有使用 spring 托管事务(没有 @Transactional,我的 spring 配置文件中没有定义 transactionManager),而是为我的 JPA 应用程序处理自定义事务。

是否仍有可能以某种方式利用我的自定义事务管理器的翻译?这个自定义事务管理器的实现仍然使用 JPA 中的 EntityManagerFactory 和 EntityManager。

请分享你的想法。

谢谢!

【问题讨论】:

    标签: spring jpa spring-transactions


    【解决方案1】:

    如果你使用@Repository注解,你会得到Spring翻译的异常,无论你是否使用spring事务管理器:

    当然,您不会得到 Spring 事务管理器本身会抛出的 Spring 异常。

    【讨论】:

    • 但是当我查看我抛出的 sql 异常时,这一切都发生在事务提交时。异常本身并不完全发生在 Dao 类中。 spring 如何翻译它自己的事务管理器没有抛出的异常?
    • 任何异常都由事务管理器管理(这可能会触发回滚),但翻译发生在之前。
    猜你喜欢
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 2011-08-27
    • 1970-01-01
    • 2015-04-13
    • 2017-06-01
    相关资源
    最近更新 更多