J'essaie d'écrire des formules dans mon cours de domaine, ce qui m'aide à créer des critères.Comment définir la formule dans la classe de domaine grails?
class MyClass {
//some fields
Date appointmentTime
String ddmmyy
int year
int month
int day
static transients = [
'ddmmyy',
'year',
'month',
'day'
]
static mapping= {
ddmmyy formula('DATE_FORMAT(appointmentTime)')
year formula('YEAR(appointmentTime)')
month formula('MONTH(appointmentTime)')
day formula('DAYOFMONTH(appointmentTime)')
}
}
Chaque fois que je suis en train d'utiliser ces champs dans mes critères, il jette l'erreur ne peut pas dire résoudre la propriété « ddmmyy » de « myClass ».
myCriteria est:
Date myDate = Calender.instance.time
def results = MyClass.createcriteria().list{
lt('appointmentTime', date+1)
ge('appointmentTime', date)
projections {
groupProperty('ddmmyy')
count('id')
}
}
Toute idée pourquoi je me fais une exception pour cela?
Notez que la formule exprimée dans la DSL ORM est SQL si les références à d'autres propriétés doivent se rapporter au modèle de persistance et non le modèle d'objet, ce qui est la raison pour laquelle l'exemple est erroné étant qu'il se réfère à RDT et non APPOINTMENT_TIME –