Можно ли как-нибудь переопределить значение поля 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
}
}
Я использую консоль, чтобы сократить время.Проблема, с которой я столкнулся при подходе Виктора, заключается в следующем:
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
}
Scriptидет хорошо, но, к сожалению, dateCreated
не изменяется.