【发布时间】:2011-08-09 15:49:53
【问题描述】:
有什么方法可以在不关闭自动时间戳的情况下覆盖我的域类中 dateCreated 字段的值?
我需要测试控制器,我必须提供具有特定创建日期的特定域对象,但 GORM 似乎覆盖了我提供的值。
编辑
我的课程如下所示:
class Message {
String content
String title
User author
Date dateCreated
Date lastUpdated
static hasMany = [comments : Comment]
static constraints = {
content blank: false
author nullable: false
title nullable: false, blank: false
}
static mapping = {
tablePerHierarchy false
tablePerSubclass true
content type: "text"
sort dateCreated: 'desc'
}
}
class BlogMessage extends Message{
static belongsTo = [blog : Blog]
static constraints = {
blog nullable: false
}
}
我正在使用控制台来缩短时间。我用 Victor 的方法遇到的问题是,当我写的时候:
Date someValidDate = new Date() - (20*365)
BlogMessage.metaClass.setDateCreated = {
Date d ->
delegate.@dateCreated = someValidDate
}
我得到以下异常:
groovy.lang.MissingFieldException: No such field: dateCreated for class: pl.net.yuri.league.blog.BlogMessage
当我尝试时
Message.metaClass.setDateCreated = {
Date d ->
delegate.@dateCreated = someValidDate
}
脚本运行良好,但不幸的是 dateCreated 没有被更改。
【问题讨论】:
标签: grails save grails-orm