在分层方法中处理JPA提交异常

时间:2013-02-01 10:05:39

标签: java jpa exception-handling dao

在我们的应用中,这些是使用的图层:

Rest Service Endpoint Layer --> Business Layer --> DAO --> ORM

现在,每个层都适当地转换其异常并将它们发送到下一层。例如,DAO Layer创建DaoException并向Business Layer投掷,Bussiness Layer将其转换为BusinessException,并将其投放到RestService Layer处理它的位置@Transactional通过cxf映射器(好吧,不是在RestServiceLayer中)。

我们已将Business Layer放在exception的方法上。因此,如果在提交时发生异常,Rest Service Endpoint Layer只能在RollBackException etc.中看到。现在,我将不得不检查最顶层(Rest Service Endpoint Layer)中与事务提交相关的异常(例如{{1}}),这会破坏每个层的目的翻译下一层的例外。

处理这种情况的好方法是什么?我是否应该根本不翻译异常并仅在最顶层处理所有异常?

1 个答案:

答案 0 :(得分:0)

在抛出异常时编写注释驱动的AOP切入点,如果您真的想要翻译并将注释应用于业务层,请进行翻译。但我也建议不要翻译 - 你通过翻译获得了什么?