GORM 6.1引入了数据服务的概念。我认为它们是在编译时检查的自动生成的持久性逻辑。我对以下内容感到困惑:
grails generate-all Domain
为REST配置文件生成了一个数据服务接口。这让我很困惑,我们是否可以在服务中使用非持久性相关的方法名称。更新:我要问的是:gorm.grails.org/latest/hibernate/manual/#dataServices。我试图了解它们与此有何不同:docs.grails.org/latest/guide/services.html以及何时使用它们。
它们与Grails Services有何不同(除了编译时间差异)?
GORM Data Services是Grails服务。
是否仍然可以在GORM数据服务中实现我的自定义业务逻辑,或者我是否需要维护两个服务,一个用于持久性(GORM),另一个用于其他无持久性相关业务逻辑(GRAILS)(例如,发出外部REST请求)并根据回应采取行动)。
您可以将业务逻辑放在您喜欢的任何服务中。通常,GORM数据服务中的逻辑应该与数据库交互相关,但这完全取决于您。如果您希望将100%的业务逻辑放在GORM数据服务实例中,尽管这没有意义。 GORM数据服务是一项服务,您可以随意添加任何内容。
我注意到grails generate-all Domain为REST配置文件生成数据服务接口。这让我很困惑,我们是否可以在服务中使用非持久性相关的方法名称。
您可以在服务中使用非持久性相关的方法名称。你可以在服务中放置任何你想要的东西。
我将采用的方法是将GORM数据服务用于数据库相关代码,并将传统的Grails服务用于其他所有内容,并在适当的时候将1注入其中。
我根据您在下面给出的要点区分了您的问题。
注意:默认情况下,服务是事务性的,但如果它们的方法都不更新持久性存储,则可以使其成为非事务性的。