2016-12-26 56 views
1

我在春天執行下面的查詢MVC JAVA錯誤:org.hibernate.exception.SQLGrammarException:無法提取ResultSet和dateAccessed不詳列

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

您正在以錯誤的方式提取計數。試試這個:

resultSet.getInt("COUNT"); 
+0

我在第二行出現錯誤,並給出錯誤sal.dateAccessed是未知列。 – daisy

+0

@daisy是行號2? – SachinSarawgi

+0

@SachinSarawgi第二行是timePart =「sal.date在''+ previousFireTime +''和'」+ currentFireTime +「'和」;之間加入。 – daisy

相關問題