HQL分頁,執行的時候報錯
Parameter index out of range (1 > number of parameters, which is 0)
剛開始以為是HQL錯誤,各種調試,各種報錯,自己把HQL全刪除,不加入變量,發現仍然錯誤。在網上找各種方式測試,發現都不行。
最后把setMaxResults()注釋掉,正確執行,換上自己的HQL,也完美運行,最終確定不是HQL的錯誤。
開始以setMaxResults()出錯為關鍵詞搜索,發現這位博友和我有類似的問題(地址:http://blog.csdn.net/zcswl7961/article/details/51323299),出現在hibernate數據庫方言設置上。
hibernate.cfg.xml中設置如下部分
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
如果是使用spring代理,下為C3P0連接池
<bean id="SessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQL5Dialect </prop> </props> </property> <property name="mappingResources"> <list> <value>xxx.hbm.xml</value> </list> </property> </bean>
請核對是否與相關的數據庫對應。
下面是網友的對應表(原文:http://blog.csdn.net/jialinqiang/article/details/8679171)
以下是各數據庫對應的方言(Dialect):
| 數據庫 |
方言(Dialect) |
| DB2 |
org.hibernate.dialect.DB2Dialect |
| DB2 AS/400 |
org.hibernate.dialect.DB2400Dialect |
| DB2 OS390 |
org.hibernate.dialect.DB2390Dialect |
| PostgreSQL |
org.hibernate.dialect.PostgreSQLDialect |
| MySQL5 |
org.hibernate.dialect.MySQL5Dialect |
| MySQL5 with InnoDB |
org.hibernate.dialect.MySQL5InnoDBDialect |
| MySQL with MyISAM |
org.hibernate.dialect.MySQLMyISAMDialect |
| Oracle(any version) |
org.hibernate.dialect.OracleDialect |
| Oracle 9i |
org.hibernate.dialect.Oracle9iDialect |
| Oracle 10g |
org.hibernate.dialect.Oracle10gDialect |
| Oracle 11g |
org.hibernate.dialect.Oracle10gDialect |
| Sybase |
org.hibernate.dialect.SybaseASE15Dialect |
| Sybase Anywhere |
org.hibernate.dialect.SybaseAnywhereDialect |
| Microsoft SQL Server 2000 |
org.hibernate.dialect.SQLServerDialect |
| Microsoft SQL Server 2005 |
org.hibernate.dialect.SQLServer2005Dialect |
| Microsoft SQL Server 2008 |
org.hibernate.dialect.SQLServer2008Dialect |
| SAP DB |
org.hibernate.dialect.SAPDBDialect |
| Informix |
org.hibernate.dialect.InformixDialect |
| HypersonicSQL |
org.hibernate.dialect.HSQLDialect |
| H2 Database |
org.hibernate.dialect.H2Dialect |
| Ingres |
org.hibernate.dialect.IngresDialect |
| Progress |
org.hibernate.dialect.ProgressDialect |
| Mckoi SQL |
org.hibernate.dialect.MckoiDialect |
| Interbase |
org.hibernate.dialect.InterbaseDialect |
| Pointbase |
org.hibernate.dialect.PointbaseDialect |
| FrontBase |
org.hibernate.dialect.FrontbaseDialect |
| Firebird |
org.hibernate.dialect.FirebirdDialect |
