0

( ) パターンに準拠した // アプリケーションをJava開発していSpringます。HibernateCQSQuery Command Separation

簡単に言えば:

  • ourは、ドメイン モデルで実行する必要がある操作を記述する場合にdomain modelのみ使用されます。Commands
  • すべての読み取り操作は、QueryServiceをバイパスするによって実行されるため、ユース ケース ベースで各クエリをdomain model( を使用して) 最適化できます。projection


MySQLドメイン モデルは、 を使用してデータベースに マップされますHibernate

ドメインと永続化モデルの分離について、長期にわたる議論があることは知っています。しかし、最近では Hibernate が非常に柔軟になったため、ドメイン モデルを犠牲にする必要がなくなったと確信しています。この方法では、ドメインと永続化モデルの間で 1 対 1 のマッピングが得られません。さらに、すべての DB 関連のものは、レイヤー スーパータイプを使用して抽象化できます。


私の質問:

  1. Hibernate Queryで(またはCriteria) プロジェクションを使用する場合QueryService、実際にはプレーン SQL の代わりにドメイン モデルを使用しています。これはパターン違反ではないでしょうか…?CQS
  2. でプレーン SQL を使用することを選択できますQueryServiceドメインモデルを使用せずにクエリを構築し、結果を JavaBeans に簡単にバインドできる優れた SQL フレームワークはありますか? 結果は通常グラフであるため、これらをネストされた JavaBean 構造に簡単にバインドできると便利です。
4

0 に答える 0