[英]grails or hibernate criteria to search only by time component
下面给出的是我的Domain对象。
Game {
Date startDate
}
现在,我只想搜索早上从hh:mm AM(动态搜索)开始的游戏,而不管日期如何。 我正在寻找像这样的Grails标准
Game.where {
startDate.timePart == timeValue
}.list()
其中timeValue =“ 10:30 AM”或类似的内容。
由于GORM不支持某些自定义限制,因此我正在使用Hibernate标准,所以如果有人知道如何使用Hibernate标准,那就太好了。
现在,这是我在Hibernate Criteria中尝试做的事情,它不起作用(我正在使用postgre)。
searchCriteria.add(Restrictions.sqlRestriction("to_timestamp(start_date, 'h:mm a') = ? ", timeValue, StandardBasicTypes.DATE))
非常感谢您的帮助。
您可以使用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)
}
您可以获取只有时间的Date实例,并在Hibernate Criteria API中使用该实例进行查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.