hibernate执行hql语句问题!!
String hql = "select new map(convert(char(10),a.testDate,111) as testDate,sum(totalCase) as totalCase,sum(okCase) as okCase,sum(pokCase) as pokCase,sum(ntCase) as ntCase,sum(ngCase) as ngCase) " +
"from AutoTestRecord as a " +
"where a.testDate between '"+DateUtil.formatDate(beginDate)+"' and '"+DateUtil.formatDate(endDate)+"' group by convert(char(10),a.testDate,111)";
执行时报错。
java.lang.NullPointerException
org.hibernate.hql.NameGenerator.generateColumnNames(NameGenerator.java:23)
org.hibernate.hql.ast.util.SessionFactoryHelper.generateColumnNames(SessionFactoryHelper.java:386)
org.hibernate.hql.ast.tree.SelectClause.initializeColumnNames(SelectClause.java:247)
org.hibernate.hql.ast.tree.SelectClause.finishInitialization(SelectClause.java:237)
org.hibernate.hql.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:231)
org.hibernate.hql.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:704)
。。。
。。。
改成这样就可以:
String hql = "select new map('2010-06-17' as testDate,sum(totalCase) as totalCase,sum(okCase) as okCase,sum(pokCase) as pokCase,sum(ntCase) as ntCase,sum(ngCase) as ngCase) " +
"from AutoTestRecord as a " +
"where a.testDate between '"+DateUtil.formatDate(beginDate)+"' and '"+DateUtil.formatDate(endDate)+"' group by convert(char(10),a.testDate,111)";
因为testDate为datetime类型,而我只要group by 日期,所以必须转换,但convert函数在group by后面是可以,但前面我也要select出来用,但就是报错。
请高手指点!!