0

我正在开发一个遵循( ) 模式的 //应用程序JavaSpringHibernateCQSQuery Command Separation

简单地说:

  • 我们domain model仅用于Commands描述需要在域模型上完成的一些操作;
  • 所有读取操作都由QueryService绕过的a 完成,domain model因此它可以根据用例优化(使用projection)每个查询。


域模型通过使用映射到MySQL数据库Hibernate

我知道关于域和持久性模型之间的分离存在长期争论。但是,我相信现在 Hibernate 已经变得如此灵活,以至于您不必在域模型上做出艰难的牺牲。这样,您就不会在域和持久性模型之间获得一对一的映射。此外,所有与 DB 相关的东西都可以通过使用层超类型抽象出来。


我的问题:

  1. 如果我在我的 中使用Hibernate Query(或Criteria)使用投影,我QueryService实际上是在使用我的域模型而不是普通的 SQL。这不是违反CQS模式吗……?
  2. 我可以选择在我的QueryService. 是否有任何好的 SQL 框架让我能够在不使用域模型的情况下构建查询并将结果轻松绑定到 JavaBeans 中?结果通常是图表,因此很容易将它们绑定到一些嵌套的 JavaBean 结构。
4

0 回答 0