GORM 数据服务 VS Grails 服务

Emm*_*ohn 5 grails grails-orm

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以及何时使用它们。

Jef*_*own 8

它们与 Grails Services 有什么不同(除了编译时间差异之外)?

GORM 数据服务Grails 服务。

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

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

我注意到 grailsgenerate-allDomain 为 REST 配置文件生成一个数据服务接口。这让我很困惑,我们是否可以在服务中使用与非持久性相关的方法名称。

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

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