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

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

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

【问题讨论】:

    标签: grails grails-domain-class


    【解决方案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 可能符合要求。这些通常与您的控制器位于同一目录中,具有可用于域对象的相同验证功能,但从不持久化。非常适合搜索表单之类的东西。

    【讨论】:

      猜你喜欢
      • 2011-01-03
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      • 2012-07-09
      • 1970-01-01
      • 2012-03-03
      相关资源
      最近更新 更多