Можно ли каким-либо образом переопределить значение поля 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 ->
[email protected] = someValidDate
}
Я получаю следующее исключение:
groovy.lang.MissingFieldException: No such field: dateCreated for class: pl.net.yuri.league.blog.BlogMessage
Когда я попробовал
Message.metaClass.setDateCreated = {
Date d ->
[email protected] = someValidDate
}
Script идет хорошо, но, к сожалению, dateCreated
не изменяется.