Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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
Java 休眠未知列_Java_Hibernate_Hql - Fatal编程技术网

Java 休眠未知列

Java 休眠未知列,java,hibernate,hql,Java,Hibernate,Hql,我正在尝试使用以下方法获取s.eventTime的日期、月份和年份: DAY(s.eventTime) as theDay, MONTH(s.eventTime) as theMonth, YEAR(s.eventTime) as theYear 然后,我使用按年、月、日分组 这给了我一个错误:org.hibernate.exception.sqlgrammareexception:group statement中的未知列'theYear' 我以前在SQL中使用过这个方法,我想知道它在HQL中

我正在尝试使用以下方法获取
s.eventTime
的日期、月份和年份:

DAY(s.eventTime) as theDay, MONTH(s.eventTime) as theMonth, YEAR(s.eventTime) as theYear
然后,我使用
按年、月、日分组

这给了我一个错误:
org.hibernate.exception.sqlgrammareexception:group statement中的未知列'theYear'


我以前在SQL中使用过这个方法,我想知道它在HQL中是否无效?如果是这样,有人有什么建议吗?

不要在列上使用别名。用他们的名字称呼他们。就像这个例子一样

例如
second(…)、minute(…)、hour(…)、day(…)、month(…)和year(…)
只能在where子句中使用


如果需要执行无法通过HQL生成的查询,则始终可以在数据库中创建一个视图,并使用Hibernate将该视图映射为一个实体。它的工作方式与表相同。

似乎您无法将
日()
月()
、或
年()与
转换为
,因此我选择如下:

DAY(s.eventTime), MONTH(s.eventTime), YEAR(s.eventTime)
然后以相同的方式分组:

GROUP BY DAY(s.eventTime), MONTH(s.eventTime), YEAR(s.eventTime)
GROUP BY DAY(s.eventTime), MONTH(s.eventTime), YEAR(s.eventTime)