2014-03-05 137 views
2

我试图通过使用获得天月和年的s.eventTime休眠未知列

DAY(s.eventTime) as theDay, MONTH(s.eventTime) as theMonth, YEAR(s.eventTime) as theYear 

再后来我用GROUP BY theYear, theMonth, theDay

这给我的错误:org.hibernate.exception.SQLGrammarException: Unknown column 'theYear' in 'group statement'

我有在SQL中使用过这种方法,并想知道它在HQL中是否无效?如果是这样,有没有人有建议?

回答

0

Expressionssecond(...), minute(...), hour(...), day(...), month(...), and year(...)只能where子句中使用。

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

1

看来你不能施放day()month(),或year()as所以不是我做了我的选择,如:

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

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

然后用分组的相同方式