У меня есть класс домена, в котором должна быть дата после дня его создания в одном из его полей.
class myClass {
Date startDate
String iAmGonnaChangeThisInSeveralDays
static constraints = {
iAmGonnaChangeThisInSeveralDays(nullable:true)
startDate(validator:{
def now = new Date()
def roundedDay = DateUtils.round(now, Calendar.DATE)
def checkAgainst
if(roundedDay>now){
Calendar cal = Calendar.getInstance();
cal.setTime(roundedDay);
cal.add(Calendar.DAY_OF_YEAR, -1); // <--
checkAgainst = cal.getTime();
}
else checkAgainst = roundedDay
return (it >= checkAgainst)
})
}
}
Итак, через несколько дней, когда я изменяю только строку и вызываю, сохраняются сохранения.не удается, потому что валидатор перепроверяет дату, и теперь она в прошлом.Могу ли я установить валидатор на запуск только при создании, или есть какой-то способ изменить его, чтобы он определял, создаем ли мы или редактируем / обновляем?
@ Rob H Я не совсем уверен, как использовать ваш ответ.У меня есть следующий код, вызывающий эту ошибку:
myInstance.iAmGonnaChangeThisInSeveralDays = "nachos"
myInstance.save()
if(myInstance.hasErrors()){
println "This keeps happening because of the stupid date problem"
}