このアプリでは、次のレイヤーが使用されています。
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、次のレイヤーの例外を変換する各レイヤーの目的を無効にする可能性があります。
この状況に対処するにはどうすればよいでしょうか。例外をまったく変換せず、それらすべてを最上位レイヤーでのみ処理する必要がありますか?