我应该将瞬态域类放在 grails 应用程序中的啥位置?

Posted

技术标签:

【中文标题】我应该将瞬态域类放在 grails 应用程序中的啥位置?【英文标题】:Where should I place a transient domain class in a grails app?我应该将瞬态域类放在 grails 应用程序中的什么位置? 【发布时间】:2011-06-30 10:03:00 【问题描述】:

我应该在 grails 应用程序中的何处放置一个瞬态域类?

即我有一个Action 类,它将被传递和使用,但从未保存。这应该在grails-app/domain 文件夹中,还是在其他地方?

【问题讨论】:

【参考方案1】:

grails-app/domain 用于持久域类,但并非所有应用程序的域相关类都需要在那里,例如在这种情况下,您想将其用作值对象。您可以将它们与其他不被视为 Grails 工件的类一起放入 src/groovy

如果您希望类支持验证,可以使用 @Validateable 注释它们 - 请参阅参考文档中的“7.5 验证非域和命令对象类”部分:http://grails.org/doc/latest/

【讨论】:

如果您需要依赖注入和/或数据绑定方面,您会使用命令对象,否则使用@Validateable POGO?在选择一种方法而不是另一种方法时,还有其他注意事项吗? Command对象很方便,但只能在Controller中使用,所以通常src/groovy中的@Validateable类更灵活 文档的当前 URL:grails.org/doc/latest/guide/…【参考方案2】:

我认为CommandObject 可能符合要求。这些通常与您的控制器位于同一目录中,具有可用于域对象的相同验证功能,但从不持久化。非常适合搜索表单之类的东西。

【讨论】:

以上是关于我应该将瞬态域类放在 grails 应用程序中的啥位置?的主要内容,如果未能解决你的问题,请参考以下文章

Grails 瞬态属性未在对象创建时获取

GORM 无法实现插件中的域类是 GORM 类

在域类中使用 grails 服务

grails域类中的时间字段

信号处理程序应该放在 django 项目中的啥位置?

我应该将我的 XML bean 放在 Spring Boot 应用程序中的啥位置?