CQS шаблон с Spring / Hibernate

Я разрабатываю Java / Spring / Hibernate приложение, которое придерживается CQS (Query Command Separation) шаблон.

Проще говоря:

  • наш domain model используется только Commands которые описывают некоторую операцию, которая должна быть сделана на модели предметной области;
  • все операции чтения выполняются QueryService что обходит domain model поэтому он может оптимизировать (используя projection) каждый запрос на основе варианта использования.


Модель предметной области отображается на MySQL базы данных с помощью Hibernate,

Я знаю, что есть давние дебаты о разделении между доменом и моделью персистентности. Тем не менее, я убежден, что в настоящее время Hibernate стал настолько гибким, что вам не нужно жертвовать жесткой моделью домена. Таким образом, вы не получите однозначного сопоставления между доменом и моделью персистентности. Кроме того, все вещи, связанные с БД, могут быть абстрагированы с использованием супертипов слоя.


Мои вопросы:

  1. Если я использую HibernateQuery (или же Criteria) используя проекцию в моем QueryService Я на самом деле использую мою модель домена вместо простого SQL. Разве это не нарушение против CQS шаблон...?
  2. Я мог бы выбрать использование простого SQL в моем QueryService, Есть ли какая-нибудь хорошая среда SQL, которая дает мне возможность создавать запросы без использования доменной модели и легко связывать результаты с JavaBeans? Результатами обычно являются графики, поэтому было бы неплохо легко связать их с какой-то вложенной структурой JavaBean.

0 ответов

Другие вопросы по тегам