使用hibernate中的hql進行分頁設置setMaxResults(int a)出錯,索引1越界,hql執行不了等等問題


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。