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 |