このアプリでは、次のレイヤーが使用されています。
Rest Service Endpoint Layer --> Business Layer --> DAO --> ORM
これで、各レイヤーは例外を適切に変換し、次のレイヤーに送信します。たとえば、DAO Layer
を作成してDaoException
にスローしBusiness Layer
、Bussiness Layer
これを に変換して cxf マッパーによって処理される場所にBusinessException
スローしRestService Layer
ます (実際には RestServiceLayer ではありません)。
@Transactional
のメソッドを実装しましたBusiness Layer
。そのため、コミット時に例外が発生した場合、exception
は最初に でのみ表示されますRest Service Endpoint Layer
。ここで、最上位レイヤー ( ) でトランザクション コミット関連の例外 (例: ) をチェックする必要があります。RollBackException etc.
これはRest Service Endpoint Layer
、次のレイヤーの例外を変換する各レイヤーの目的を無効にする可能性があります。
この状況に対処するにはどうすればよいでしょうか。例外をまったく変換せず、それらすべてを最上位レイヤーでのみ処理する必要がありますか?