以下是我的Domain对象。
Game {
Date startDate
}
现在我想只搜索早上hh:mm AM(动态搜索)的游戏,无论日期如何。我正在寻找像这样的Grails标准
Game.where {
startDate.timePart == timeValue
}.list()
timeValue =" 10:30 AM"或类似的东西。
我正在使用Hibernate标准,因为GORM不支持某些自定义限制,所以如果有人知道如何使用Hibernate标准,那就太好了。
现在这就是我在Hibernate Criteria中尝试做的事情,它不起作用(我正在使用postgre)。
searchCriteria.add(Restrictions.sqlRestriction("to_timestamp(start_date, 'h:mm a') = ? ", timeValue, StandardBasicTypes.DATE))
非常感谢您的帮助。
答案 0 :(得分:0)
您可以使用HibernateCriteriaBuilder。 可以通过Grails域类的“createCriteria()”动态静态方法检索构建器:
def c = Game.createCriteria()
def results = c {
eq("start_date",timeValue)
}
构建器也可以使用SessionFactory和持久化Class实例独立实例化:
new HibernateCriteriaBuilder(clazz, sessionFactory).list {
eq("start_date", timeValue)
}
答案 1 :(得分:0)
您可以只使用时间获取一个Date实例,并在Hibernate Criteria API中使用它来进行查询。