Java 属性的值可以';无法在beforeInsert()内更新
我有一个Grails2.2.1项目,它有一个名为“问题”的域。在此域中,beforeinstert()当前的外观如下:Java 属性的值可以';无法在beforeInsert()内更新,java,grails,gorm,Java,Grails,Gorm,我有一个Grails2.2.1项目,它有一个名为“问题”的域。在此域中,beforeinstert()当前的外观如下: def beforeinstert(){ dateCreated=新日期() dateModified=新日期() } 如果此值是从控制器传递的,我想更新dateCreated,如果不是,则按原样允许。这是我的修改,但不幸的是它不起作用: def beforeinstert(){ dateCreated=dateCreated?dateCreated:new Date() p
def beforeinstert(){
dateCreated=新日期()
dateModified=新日期()
}
如果此值是从控制器传递的,我想更新dateCreated,如果不是,则按原样允许。这是我的修改,但不幸的是它不起作用:
def beforeinstert(){
dateCreated=dateCreated?dateCreated:new Date()
println-dateCreated
dateModified=新日期()
}
即使println打印更新的dateCreated值,当数据插入数据库时,dateCreated字段每次都会获取当前时间戳的值。感谢您的帮助:)自动为您设置
dateCreated
的原因是autoTimestamp
的默认行为。默认情况下,当域类上存在属性dateCreated
时,Grails将为您设置此值
您可以禁用此默认行为,例如:
class Book {
…
static mapping = {
autoTimestamp false
}
}
您可能还想签出。自动为您设置
创建日期的原因是自动时间戳的默认行为。默认情况下,当域类上存在属性dateCreated
时,Grails将为您设置此值
您可以禁用此默认行为,例如:
class Book {
…
static mapping = {
autoTimestamp false
}
}
您可能还想签出。发布域的映射
部分。尚未映射任何内容。发布域的映射
部分。尚未映射任何内容。是否有任何方法可以根据条件设置自动时间戳值?例如,仅当我手动提供dateCreated值时,我希望autoTimestamp为false。您是否尝试在插入前使用代码并禁用autoTimestamp
?这应该能满足你的需要。谢谢。是否有任何方法可以根据条件设置自动时间戳值?例如,仅当我手动提供dateCreated值时,我希望autoTimestamp为false。您是否尝试在插入前使用代码并禁用autoTimestamp
?这应该能实现你想要的。