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)