Я перехожу приложение Grails от 2.2.4 до 2.5.0, и от Hibernate 3 до Hibernate 4.Использование статического метода в Grails/Горм FindAll закрытия
Существует существующий GORM findAll
запрос, который пропускает java.util.Date
(домен start
) объекта домена для вызова статического метода, который возвращает копию Date
с отключенным компонентом времени.
Вот упрощенная версия findAll
вызова (за исключением других, чем тот, который бросает исключение критерии):
Reservation.findAll {
DateUtils.justDate(start) == DateUtils.justDateToday()
}
Это работает без каких-либо исключений в 2.2.4, но, в 2.5.0, это бросает GroovyCastException
, говоря, что start
является grails.gorm.DetachedCriteria
и не может быть отлит до java.util.Date
.
Как я могу заставить запрос работать?
я мог бы использовать что-то вроде:
Reservation.findAll {
start >= DateUtils.justDateToday() &&
start < DateUtils.justDateTomorrow()
}
Но это кажется безвкусным. Кроме того, свойства объекта домена могут использоваться в качестве аргументов статическим методам в других затворах findAll
, поэтому общее решение этой проблемы по-прежнему будет полезно.
Вы должны также показать, как 'start' будет организовано, чтобы выяснить, почему это жалуются, что будучи' DetachedCriteria ' – dmahapatro
Что вы подразумеваете под словом" how' start' "? 'start' - стандартное свойство объекта домена GORM, объявленное как:' Date start'. Это информация, которую вы ищете? – XDR
'start' также имеет следующее ограничение GORM:' start validator: {val, obj ->! Val || ! obj.end || val
XDR