Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate HQL日期查询问题_Hibernate_Hql - Fatal编程技术网

Hibernate HQL日期查询问题

Hibernate HQL日期查询问题,hibernate,hql,Hibernate,Hql,如果我期待一个日期对象,比如说2011-03-05 我想用HQL在2011-03年提取所有内容,忽略第/05天 类似于其中年(somecolumn)=年(datepassedin)和月(somecolumn)=月(datepassedin) 可以在HQL中执行此操作吗 在SQL中似乎很容易做到这一点,但在HQL中却不是这样。HQL有年份和月份,您可以很好地为它提供日期对象。所以,像往常一样使用一个对象,不要花哨或复杂 我尝试了同一查询的两个不同版本,在SQL Server中,类似于您的where

如果我期待一个日期对象,比如说2011-03-05

我想用HQL在2011-03年提取所有内容,忽略第/05天

类似于
其中年(somecolumn)=年(datepassedin)和月(somecolumn)=月(datepassedin)

可以在HQL中执行此操作吗


在SQL中似乎很容易做到这一点,但在HQL中却不是这样。HQL有年份和月份,您可以很好地为它提供日期对象。所以,像往常一样使用一个对象,不要花哨或复杂

我尝试了同一查询的两个不同版本,在SQL Server中,类似于您的
where year(somecolumn)
的查询速度明显慢于括号中的查询(几乎慢了一个数量级)

您必须创建两个日期,一个在范围的开头,一个在范围的结尾。假设您有一个字符串:

val data = "2011-03-05"
在某处创建一个方便的常量来解析值:

val dateFormat: SimpleDateFormat = new SimpleDateFormat("yyyy-MM")
然后:

val yearMonthString = data.substring(0, 7)

val fromValue = dateFormat.parse(yearMonthString)
val c: Calendar = Calendar.getInstance(iPutATimeZoneHere)
c.setTime(fromValue)
c.add(Calendar.MONTH, 1)
val toValue = c.getTime
在查询中,您将有
其中somecolumn>=:fromValue和somecolumn<:toValue

这段代码是用Scala编写的,但它使用标准Java库