如何在 Grails 域类中正确设置属性值

Posted

技术标签:

【中文标题】如何在 Grails 域类中正确设置属性值【英文标题】:How to Properly Set Property Value in Grails Domain Class 【发布时间】:2014-10-31 10:17:42 【问题描述】:

只是做了一些测试和谷歌搜索,并遇到了一个建议,如果你想设置一个默认值,你应该在一个属性的映射中设置 defaultValue 参数。最初我是这样设置的:

property = value

我可以根据我的默认值查看数据库中设置的值。当我把它切换到这个时:

static mapping = 
    property defaultValue: value

所以此时我已经按照上面的示例进行了设置,并且想知道我是否真的需要这样做。如果没有映射,它对我来说工作得很好,但也许映射做了我还不知道的其他事情。

【问题讨论】:

【参考方案1】:

这取决于您对应用程序的预期行为。两者都是有效的,并且工作得很好。

首先,通过为域类的属性分配默认值,不仅会在数据库架构级别设置默认值,还会为域类的新实例提供默认值。

第二种,通过在映射闭包中设置默认值,只会在数据库模式级别设置默认值。

因此,根据您期望域类的新实例的行为方式,您可以做出选择。默认在实例和数据库架构级别,或仅在数据库架构级别。

选择权在你。灵活性。

【讨论】:

我个人更喜欢第一个,如果它同时设置它,在发布后我确实注意到了,我感谢你的回答并为我确认!

以上是关于如何在 Grails 域类中正确设置属性值的主要内容,如果未能解决你的问题,请参考以下文章

Grails Scaffolding Templates - 从域类中获取属性

在另一个域类中查看 grails 域类属性

如何使用用户定义的函数为 grails 中的域类变量设置默认值

在域类中使用 grails 服务

在 Grails 域类中设置日期字段的默认值

如何将 Grails 域类映射到 DTO?