feature-a.jar、feature-b.jarなどの個別のjarにパッケージ化された機能によって、アプリケーションをモジュールに分割しようとしています。
feature-a.jarなどの個々の機能jarには、jpaエンティティ、ビジネスロジック、REST API、単体テスト、統合テストなどを含む、機能のすべてのコードが含まれている必要があります。
私が遭遇している問題は、JPAエンティティ間の双方向の関係がjarファイル間の循環参照を引き起こすことです。たとえば、Customerエンティティはcustomer.jarにあり、Orderはorder.jarにある必要がありますが、Customerはorderを参照し、orderはcustomerを参照するため、個別のjar/eclipseプロジェクトに分割するのは困難です。
JPAエンティティの循環依存関係を処理するために私が見るオプション:
- オプション1:すべてのエンティティを1つのjar/1つのプロジェクトに配置します
- オプション2:プロジェクト間の循環依存を回避するために、特定の双方向関係をマップしないでください。
質問:
- 双方向マッピングを実行するタイミングと実行しないタイミングを決定するために、どのようなルール/原則を使用しましたか?
- jpaエンティティを機能ごとに独自のプロジェクト/jarに分割できましたか?そうであれば、循環依存の問題をどのように回避しましたか?