我有一个名为“问题”的 Grails 2.2.1 项目。在此域中, beforeinsert()目前如下所示:
def beforeInsert() {
dateCreated = new Date()
dateModified = new Date()
}
如果从控制器传递此值,我想更新 dateCreated ,如果没有,请按原样允许。这是我的修改,但不幸的是它不起作用:
def beforeInsert() {
dateCreated = dateCreated ? dateCreated : new Date()
println dateCreated
dateModified = new Date()
}
即使println打印更新的dateCreated值,当数据插入数据库时,dateCreated字段每次都会获取当前时间戳的值。任何帮助表示赞赏:)
答案 0 :(得分:0)
为您自动设置dateCreated
的原因是autoTimestamp
的默认行为。默认情况下,当域类中存在属性dateCreated
时,Grails将为您设置此值。
您可以这样禁用此默认行为:
class Book {
…
static mapping = {
autoTimestamp false
}
}
您可能还想查看documentation。