riada para teste no Grails
Existe alguma maneira de substituir o valor dedateCreated
campo na minha classe de domínio sem desativar o carimbo de data / hora automático?
Preciso testar o controlador e preciso fornecer objetos de domínio específicos com data de criação específica, mas o GORM parece substituir os valores que forneç
EditaMinhas aulas ficam assim:
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
}
}
Estou usando o console para encurtar as coisas. O problema que encontrei com a abordagem de Victor é quando escrevo:
Date someValidDate = new Date() - (20*365)
BlogMessage.metaClass.setDateCreated = {
Date d ->
delegate.@dateCreated = someValidDate
}
Recebo a seguinte exceção:
groovy.lang.MissingFieldException: No such field: dateCreated for class: pl.net.yuri.league.blog.BlogMessage
Quando tentei
Message.metaClass.setDateCreated = {
Date d ->
delegate.@dateCreated = someValidDate
}
Script corre bem, mas infelizmentedateCreated
não está sendo alterado.