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 |