我如何设置grails域类的默认值
有没有办法将默认值设置为域类属性? 我有一个名为PayMethod的类,我希望“名称”属性默认为“现金”。 我想这个默认值,当我创build这个表,这是可能的使用约束?
package abc import util.UserUtil import embed.AuditUser class PayMethod { String name = "Cash" AuditUser audit = new AuditUser() static embedded = ['audit'] static constraints = { name blank: false, size: 5..30, unique: true } static mapping = { table 't01i0010' id column: 'F_ID', precision: 4, scale: 0 name column: 'F_NAME', length: 30, defaultValue: 'Cash' version column: 'F_REVISION' } def authUserService int insertIndex = 0 int updateIndex = 0 static transients = ['authUserService', 'insertIndex', 'updateIndex'] def beforeInsert = { audit.entryUser = UserUtil.user() audit.entryDate = new Date(); } def beforeUpdate = { audit.reviseUser = UserUtil.user() audit.reviseDate = new Date(); } def afterInsert = { if(insertIndex == 0){ def user = audit.entryUser def date = audit.entryDate log.info "POST INSERT => ENTERER: ${user} ENTERED: ${date}" } insertIndex++ } def afterUpdate = { if(updateIndex == 0){ def user = audit.reviseUser def date = audit.reviseDate log.info "POST UPDATE => REVISE: ${user} REVISED: ${date}" } updateIndex++ } }
2.2版应该在本周或下个版本发布。 有关function请求,请参阅http://jira.grails.org/browse/GRAILS-5520 。 语法将是
static mapping = { name defaultValue: "'Cash'" }
现在你需要做你正在做的事情 – 将该值设置为字段的默认值。 您可以手动更新数据库模式,也可以将其作为迁移的一部分来完成。
要构build上一个答案,可以使用Grails 2.2中的defaultValue属性,但是需要小心地将双引号和单引号放在string属性的默认值和整数属性的双引号周围,以便默认值在DDL中正确显示。 所以,例如,你需要使用:
static mapping = { myStringProperty defaultValue: "'Cash'" myIntProperty defaultValue: "0" }
如果你只使用单引号,最终会出现像“Column”CASH“找不到”的错误。另外,就我所知,默认值对于枚举属性不起作用。
有同样的问题,使用静态映射也不适用于我(使用2.2.3); 下面的链接为我提供了一个function性的答案(在对象声明中设置默认值):
http://grails.1312388.n4.nabble.com/How-to-set-a-default-value-for-column-td1383753.html
对于String,用引号封装; 整数/整数应该只是值。
希望这可以帮助!
- 在OS X上的Intellij IDEA设置
- 为什么我在Grails中使用HibernateCriteriaBuilder的时候得到一个“空值赋给原始typessetter的属性”错误信息
- 在Grails 2.0.0运行时生成的Clojure 1.2.1 / 1.3 / 1.4代理失败。 1.2.0很好
- 有没有更好的方法来写这个空检查,并在一个非空的检查,在groovy?
- Grails BuildConfig.groovy,构build,编译和运行时间的区别?
- hibernateGrails应用程序中的第二级caching
- 春豆是什么?
- 将JSON绑定到嵌套的Grails域对象
- 如何在Grails中loggingSQL语句