鉴于此域:
class Burger{
String description
Date dateCreated
}
目前,我有这个namedQuery
queryOnDateCreated {Date dateArgument ->
eq 'dateCreated', dateArgument
}
我需要一个查询,使我可以在只考虑年,月和日(月)的情况下查找具有特定dateCreated的Burger域中的所有对象,而忽略小时,分钟,秒和毫秒。
最佳答案
经过一些额外的研究,我找到了一个解决方案,我将与之分享以防它对其他人有所帮助:
命名查询需要如下:
queryOnDateCreated {Date dateArgument ->
def dateArgumentIntervalEnd = DateUtils.addMilliseconds(dateArgument + 1, - 1)
between 'dateCreated', dateArgument, dateArgumentIntervalEnd
}
说明:
“介于”条件返回域中日期在给定间隔之间的每个对象。
由于dateArgument是仅使用年,月和日创建的日期,因此其时间应为00:00:00:000(一天的第一时刻)。
此外,“dateArgument + 1”保存第二天(同时)的值,这就是为什么需要减去1毫秒的原因,因此“dateArgumentIntervalEnd”将保存相同的Year,Month和Day的值。 “dateArgument”,但时间将为23:59:59:999,并保持一整天的间隔。