2010-11-30 4 views
1

私は基準を作成しましたが、setMaxResultsを使用すると例外SQLGrammarExceptionが発生します。しかし、私がsetMaxResultsにコメントすると、最初の結果の後にすべてのエントリが返されます。私はMySQLデータベースを使用しています。SQLGrammarExceptionを与える条件setMaxResultsを使用しているHibernate

コード:

return criteria 
      .setFirstResult(start) 
      .setMaxResults(end) 
      .setFetchSize(end) 
      .list(); 

例外:

org.hibernate.exception.SQLGrammarException: could not execute query 
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92) 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) 
    at org.hibernate.loader.Loader.doList(Loader.java:2536) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) 
    at org.hibernate.loader.Loader.list(Loader.java:2271) 
    at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:119) 
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1716) 
    at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347) 

.... 

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ... 
+2

trueに「show_sql'プロパティを設定しようとすると、生成されたクエリをチェックアウトし、それからfigureout問題を試してみてください –

答えて

4

問題が解決されました。私は休止状態のプロパティで間違った方言を持っていました。 SQL Serverを使用する他のプロジェクトからプロパティをコピーしましたが、これはMySQLを使用しているため、間違った方言がこのエラーを引き起こしていました。

hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect 
+0

私は、このプロパティを使用していたとき、私はエラーを得ます。、それを削除するとうまくいきます。ありがとうnewbie :) – Hazim

関連する問題