Можно ли каким-либо образом изменить значение поля 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
}
Скрипт работает нормально, но, к сожалению, dateCreated
не изменяется.