【问题标题】:Where should I write my criteria queries in a Grails Project ? In the Service layer or in the Domain Models?我应该在 Grails 项目中的哪里编写条件查询?在服务层还是在领域模型中?
【发布时间】:2014-12-03 15:13:56
【问题描述】:

我目前正在做一个 Grails 项目,我需要使用 Hibernate Criteria 编写一些查询。

我应该在哪里编写我的 Hibernate Criteria 查询以及为什么?

是服务层吗?或者避免贫血的域模型并在那里编写命名查询会是一个更好的主意吗?或者,我应该在服务层下创建一个单独的层吗?

【问题讨论】:

    标签: hibernate grails grails-orm criteria


    【解决方案1】:

    正如@Joshua-moore 已经提到的:这取决于。

    我的rule of thumb

    其中一部分可以与域类耦合为namedQueries

    另一个 - 就像 findAllBy 直接在控制器内部一样简单。

    如果您需要在复杂的跨域事务中插入/更新数据 - 使用 services

    【讨论】:

      【解决方案2】:

      简短的回答是“取决于”。

      更长的答案是“这取决于您如何构建应用程序”。

      如果您计划将所有内容委托给服务层,那么服务层是放置查询的好地方。

      如果您打算使用来自多个服务的相同查询或将它们链接起来,那么域类上的命名查询更有意义。

      因此,“这取决于”您的应用程序是如何设计的。只要满足您的要求并促进代码重用,任何一个都是可接受的放置查询的地方。

      【讨论】:

        猜你喜欢
        • 2016-04-29
        • 2018-02-02
        • 2010-10-07
        • 1970-01-01
        • 2012-04-19
        • 1970-01-01
        • 1970-01-01
        • 2012-02-25
        • 2023-04-07
        相关资源
        最近更新 更多