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