【问题标题】:GORM Data Services VS Grails ServicesGORM 数据服务 VS Grails 服务
【发布时间】:2018-06-09 14:34:01
【问题描述】:

GORM 6.1 引入了数据服务的概念。我认为它们是在编译时检查的自动生成的持久性逻辑。我对以下内容有些困惑:

  1. 它们与 Grails 服务有何不同(除了编译时间差异)?
  2. 是否仍然可以在 GORM 数据服务中实现我的自定义业务逻辑,或者我是否需要维护两个服务,一个用于持久性 (GORM),另一个 (GRAILS) 用于其他与持久性无关的业务逻辑(例如,制作一个外部 REST 请求并根据响应执行操作)。
  3. 我注意到grails generate-all Domain 为 REST 配置文件生成了一个数据服务接口。这让我很困惑,我们是否可以在服务中使用非持久性相关的方法名称。

更新:我要问的是:gorm.grails.org/latest/hibernate/manual/#dataServices。我正在尝试了解它们与此有何不同:docs.grails.org/latest/guide/services.html 以及何时使用它们。

【问题讨论】:

    标签: grails grails-orm


    【解决方案1】:

    我根据您在下面给出的观点区分了您的问题。

    1. 所有 GORM 持久性方法都已编译(JAR 文件),但不是您正在实现/编写的服务方法调用,它们会在您键入和保存代码时动态编译。 GORM 方法得到了很好的优化。

    2. 可以在单个方法中编写自定义业务逻辑和 GORM API 调用,但是如果您想为许多其他控制器调用编写通用方法,并且还需要了解该场景,想要避免复杂性,在这种情况下,您可以为上述两个内容编写单独的调用。 对于简短的自定义业务逻辑,您可以在同一方法中编写代码。

    3. 我们还可以在同一个服务中编写非持久性相关的方法,但这取决于您。您还可以为这些方法创建单独的服务或使用现有的其他服务以避免任何混淆和复杂性。

    注意:服务默认是事务性的,但可以进行 如果他们的方法都没有更新持久性,则非事务性 商店。

    【讨论】:

    【解决方案2】:

    它们与 Grails 服务有何不同(除了编译 时差)?

    GORM 数据服务 Grails 服务。

    是否仍然可以在内部实现我的自定义业务逻辑 GORM Data Services 还是我需要维护两项服务,一项用于 持久性(GORM)和另一个(GRAILS)用于其他非持久性 相关的业务逻辑(例如发出外部 REST 请求并执行 关于响应)。

    您可以将业务逻辑放入您喜欢的任何服务中。一般来说,GORM 数据服务中的逻辑应该与数据库交互相关,但这完全取决于您。如果您愿意,可以将 100% 的业务逻辑放在 GORM 数据服务实例中,尽​​管这没有意义。 GORM 数据服务是一种服务,您可以在其中放入任何您喜欢的内容。

    我注意到 grails generate-all 域生成一个数据服务 REST 配置文件的接口。这让我很困惑我们是否 服务中可以有非持久性相关的方法名称。

    您可以在服务中使用非持久性相关的方法名称。您可以在服务中添加任何您想要的内容。

    我将采取的方法是,我将 GORM 数据服务用于数据库相关代码,并将传统 Grails 服务用于其他所有内容,并在适当的情况下将 1 注入另一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多