• 使用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

  • 相关阅读:
    TFS 服务器更换后工作区无法绑定
    导出你的GAC Assembly中的DLLS
    MICROSOFT REPORT VIEWER 2012之无法加载相关的dll
    查询可用的Nuget服务地址
    认识k_BackingField【转】
    EntityFramework 中生成的类加注释
    Bat命令知识[转]
    利用bat批量执行脚本文件
    SQL Server 2012 LocalDB 管理之旅
    【转】Windows环境下.NET 操作Oracle问题
  • 原文地址:https://www.cnblogs.com/aocshallo/p/6363037.html
Copyright © 2020-2023  润新知