Spring を使用しているプロジェクトがあり、数十の DAO と関連する DTO に分割されています。私は JdbcTemplate を使用していますが、それはまさに私が満足している抽象化のレベルであるため、他にはあまりありません。
私は現在、ゲッターにやや複雑なコードを配置して、DTO で遅延読み込みを実行しています。
基本的なボイラープレート ロジックは次のとおりです。 1. フィールドが null でない場合は、その値を返して終了します。 2. 適切な DAO に連絡し、関連する DTO を取得します。 3. 次回まで保存します。
私の低レベルの DTO が多数の DAO と組み合わされており、それほど POJOey ではないことを除けば、これは問題なく動作します。
ロジックをDAOに配置すると、DTOのCRUDと遅延読み込みの両方を処理するため、別のコードの匂いがします。私が理解しているように、オブジェクトは単一の責任を持つ必要があります。
これを実現するために、DAO と DTO の間に Lazy Loader オブジェクトを挿入するために使用できる比較的単純な Spring アプローチがあることを願っていますが、他のソリューションは私にとってはうまくいくでしょう。
何か案は?