私にはエンティティがA
ありA
、エンティティのセットがありますB
。遅延読み込みを行います。A
すべての結果リストをロードするとき、それぞれA
のサイズがB
for thatの一時的な値が必要ですA
。
サービスレイヤーでは、遅延読み込みを実行したため、これを実行できません。側で一時的な値を設定する必要がありdao
ます。dao
しかし、ロジックが側にないと聞いたことがあります。
私は何をすべきか?どんな説明でも大歓迎です。
Hibernate は「すべてかゼロか」のソリューションである必要はありません。目的に合ったストレート JDBC を自由に選択できます。
SELECT COUNT() FROM B
選択した DAO で単純なクエリを作成し、作業を進めることをお勧めします。
または、A の DAO が常に B のサイズを必要とする理由を自問する必要があるかもしれません。DAO はステートレスであるべきだと思います。なぜあなたのものではないのですか?たぶん、デザインを再考する必要があります。あなたの質問からはわかりません。
その追加情報をエンティティに追加することは、ビジネスロジックではなくデータアクセスの一部と見なされる可能性があるため、それを行うことができると私は主張します。
しかし、それは設計原則の違反についての質問に関するものです。ニーズに合わせて休止状態の可能性を活用するという Paul D'Ambra の提案は、より洗練されたソリューションのように思えます。