Переопределение dateCreated для тестирования в Grails

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

19
задан jjczopek 21 April 2011 в 09:49
поделиться