错误:org.hibernate.exception.SQLGrammarException:无法提取ResultSet而dateAccessed是未知列

时间:2016-12-26 10:44:41

标签: java mysql spring hibernate

我在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)

我需要在显示的代码中更改哪些内容?

1 个答案:

答案 0 :(得分:0)

你以错误的方式获取计数。试试这个:

resultSet.getInt("COUNT");