( ) パターンに準拠した // アプリケーションをJava
開発していSpring
ます。Hibernate
CQS
Query Command Separation
簡単に言えば:
- ourは、ドメイン モデルで実行する必要がある操作を記述する場合に
domain model
のみ使用されます。Commands
- すべての読み取り操作は、
QueryService
をバイパスするによって実行されるため、ユース ケース ベースで各クエリをdomain model
( を使用して) 最適化できます。projection
MySQL
ドメイン モデルは、 を使用してデータベースに
マップされますHibernate
。
ドメインと永続化モデルの分離について、長期にわたる議論があることは知っています。しかし、最近では Hibernate が非常に柔軟になったため、ドメイン モデルを犠牲にする必要がなくなったと確信しています。この方法では、ドメインと永続化モデルの間で 1 対 1 のマッピングが得られません。さらに、すべての DB 関連のものは、レイヤー スーパータイプを使用して抽象化できます。
私の質問:
Hibernate
Query
で(またはCriteria
) プロジェクションを使用する場合QueryService
、実際にはプレーン SQL の代わりにドメイン モデルを使用しています。これはパターン違反ではないでしょうか…?CQS
- でプレーン SQL を使用することを選択できます
QueryService
。ドメインモデルを使用せずにクエリを構築し、結果を JavaBeans に簡単にバインドできる優れた SQL フレームワークはありますか? 結果は通常グラフであるため、これらをネストされた JavaBean 構造に簡単にバインドできると便利です。