java - hibernate 方言

标签 java hibernate

我正在使用 Hibernate 从 sql server 2008 访问数据。同时执行以下代码

Session session = sessionFactory.openSession();
String qry="select Form_Id,SUBSTRING( 
       (SELECT ( '' + t2.Form_Layout_Txt) FROM Form_Layout_Info t2  
            WHERE t1.Form_Id = t2.Form_Id " +
            " GROUP BY Form_Layout_Txt FOR XML path('') ), 1,1000000000) 
             FROM Form_Layout_Info t1 GROUP BY  Form_Id";

SQLQuery query = session.createSQLQuery(qry);
recordList = query.list();

我的 Hibernate 属性是

hibernate.connection.driver_class=com.microsoft.sqlserver.jdbc.SQLServerDriver
hibernate.connection.url=jdbc:sqlserver://localhost:1433;databaseName=abc;integratedSecurity=false;
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.connection.username=sa
hibernate.connection.password=p123asc

我收到以下错误

No Dialect mapping for JDBC type: -9 

如何解决问题。

最佳答案

您需要在 sql server 的配置中提供 hibernate.dialect=org.hibernate.dialect.SQLServerDialect

要么在 hibernate.cfg.xml 中将其提供为:

<hibernate-configuration>
    <session-factory name="session-factory">
        .....
        <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
        ....
 </session-factory>
</hibernate-configuration>

或在属性文件中为:

hibernate.dialect=org.hibernate.dialect.SQLServerDialect

我不知道你用的是哪种方式,所以把我知道的都贴出来

我为您的问题找到了 2 个解决方案 here :

  1. 尝试将您的驱动程序更改为 jTDS 使用微软提供的ms sql server jdbc驱动会导致这个问题,而jTDS没有给出这个问题。

  2. 您可能需要向您的 hibernate 查询显式“添加标量”。你可能有这样的事情:

    sess.createSQLQuery("SELECT * FROM CATS"); //尝试更改为: sess.createSQLQuery("SELECT * FROM CATS") .addScalar("ID", Hibernate.LONG) .addScalar("名称", Hibernate.STRING) .addScalar("出生日期", Hibernate.DATE)

关于java - hibernate 方言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14138120/

相关文章:

java - Hibernate:Ejb3Configuration 类的替代品

java - JAXB 编码动态地为根元素提供 namespace

java - 如何使用 Jquery、AJAX 和 Servlet 获得实时搜索功能?

java - Spring框架中的Mysql MySQLSyntaxErrorException

java - Android makedirs文件夹创建错误

java - JPA 试图强制我拥有一个名为 'id' 的属性和数据库列

java - 如何在 Hibernate 中重用模型而不创建新模型

java - 通过 JPQL/Hibernate 中的不同列进行排序

java - 如何从 int 数组中随机选择,然后删除所选元素

java - JPA hibernate : Invalid persistence. xml