我正在使用Spring 3来管理数据库事务。每当引发异常时,我都会捕获异常并返回相应的消息。但是当Spring提交事务时,异常会再次引发并包含在org.springframework.dao.DataIntegrityValidationException
中。我该如何处理该异常?我应该使用拦截器还是其他东西?有没有人以前有过这个问题?
提前致谢
答案 0 :(得分:9)
如果您的交易边界位于您的服务层(如果您有一个,那么您应该),那么您应该捕获边界之外的异常。 Spring的工作方式是,如果异常在事务边界之外冒泡,则事务将被回滚。通过捕获异常,您将停止该过程,这可能是您不想要的。
拦截器是处理事务边界之外的异常的好方法。