2011-06-09 83 views
1

我正在开发JPA 2和Spring 3.我可以使用spring异常转换而不使用spring-managed-transaction吗?

我为我的Dao类使用了@Repository,希望能够使用Spring异常转换。

但问题是,我没有使用弹簧管理的事务(无@事务,我的春天配置文件中没有的TransactionManager的定义),但我的JPA的应用程序自定义事务处理。

难道还要以某种方式利用翻译从我的自定义事务管理器?这个自定义事务管理器的实现仍然使用JPA的EntityManagerFactory和EntityManager。

请分享您的想法。

谢谢!

回答

1

如果使用@Repository注解,你会得到春天翻译例外,不管你使用Spring的事务管理器或不:

enter image description here

不过,当然,你不会得到春节例外,它们会被Spring事务管理器本身抛出。

+0

但是当我看着我的抛出SQL异常,这一切的事务正在COMMITED时发生。这个例外本身并不是在Dao类中发生的。 Spring如何翻译不是从它自己的事务管理器中抛出的异常呢? – bertie 2011-06-09 12:21:22

+0

任何异常由事务管理器(这可能会引发回滚)管理,但在翻译之前发生。 – Tristan 2011-06-09 12:34:58

相关问题