繁体   English   中英

grails或休眠条件以仅按时间分量进行搜索

[英]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中使用该实例进行查询。

仅将日期的日期部分与Hibernate中的时间戳进行比较

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM