我在spring MVC JAVA
中执行以下查询if (currentFireTime != null && previousFireTime != null) {
timePart = " sal.dateAccessed between '" + previousFireTime + "' and '" + currentFireTime + "' and ";
}
String queryString = " select count(*) as COUNT FROM LogData sal where " + timePart + " sal.userSigned = false and sal.batchMetaDataId = "+batchId;
SQLQuery sq =sessionFactory.getCurrentSession().createSQLQuery(queryString);
sq.addScalar("COUNT", IntegerType.INSTANCE);
sq.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
List<Map<String,Object>> resultSet=sq.list();
return (Integer)resultSet.get(0).get("COUNT");
执行时看起来像这样并将它放在Mysql中它工作正常。但我得到错误,如下所示。
select count(*) as COUNT FROM LogData sal where sal.dateAccessed between '2016-12-26 00:00:00.618' and '2016-12-26 01:00:00.618' and sal.userSigned = false and sal.batchMetaDataId = 86
错误显示
org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
我需要在显示的代码中更改哪些内容?
答案 0 :(得分:0)
你以错误的方式获取计数。试试这个:
resultSet.getInt("COUNT");