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 |
