【问题标题】:I get the exception org.hibernate.MappingException: No Dialect mapping for JDBC type: -9我得到异常 org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
【发布时间】:2012-04-09 11:24:24
【问题描述】:

我正在使用休眠。我写了一个原生 sql 查询。 此查询将在 sqlSever 命令提示符中执行。

try
    {
        session=HibernateUtil.getInstance().getSession();
        transaction=session.beginTransaction();

        SQLQuery query = session.createSQLQuery("SELECT AP.PROJECT_NAME, AP.SKILLSET, PA.START_DATE, PA.END_DATE, RS.EMPLOYEE_ID, RS.EMPLOYEE_NAME, RS.REPORTING_PM FROM RESOURCE_MASTER RS,SHARED_PROPOSAL S, ACTUAL_PROPOSAL AP, PROJECT_APPROVED PA, PROJECT_ALLOCATION PL WHERE RS.EMPLOYEE_ID = PL.EMPLOYEE_ID AND PA.PROJECT_ID = PL.PROJECT_ID AND PA.SHARED_PROPOSAL_ID = S.SHARED_PROPOSAL_ID AND S.ACTUAL_PROPOSAL_ID=AP.ACTUAL_PROPOSAL_ID");
            List<Object[]> obj=query.list();
            Object[] object=new Object[arrayList.size()];
             for (int i = 0; i < arrayList.size(); i++) {
                 object[i]=arrayList.get(i);
                System.out.println(object[i]);
            }
            arrayList.get(0);
            String name=(String)arrayList.get(0);
            logger.info("In find All searchDeveloper");

    }catch(Exception exception)
    {
        throw new PPAMException("Contact admin","Problem retrieving resource master list",exception);
    }

我收到以下异常:org.hibernate.MappingException: No Dialect mapping for JDBC type: -9

此查询在 SqlServer 命令提示符下执行。我映射了七张表。 如果我删除 ACTUAL_PROPOSAL AP 表,它会正确执行。

请帮帮我

【问题讨论】:

标签: java hibernate


【解决方案1】:

hibernate 方言无法为 db 列类型找到对应的 java 数据类型时会出现问题。要解决它,您需要使用addScalar() 方法指定每个结果项的数据类型。

例如,

sess.createSQLQuery("SELECT ID,NAME,BIRTHDATE FROM CATS")
 .addScalar("ID", Hibernate.LONG) 
  //If u r using newer version of hibernate use new LongType()
  //instead of Hibernate.LONG
 .addScalar("NAME", Hibernate.STRING)
 .addScalar("BIRTHDATE", Hibernate.DATE)

阅读 API 文档 here 或示例 here

【讨论】:

  • A 认为您不需要为 all 列定义数据类型,只需为特殊的列定义。
【解决方案2】:

只是作为更新。 ManuPK 是正确的,但不推荐使用 Hibernate.String、Hibernate.Date、Hibernate.Long。见http://opensource.atlassian.com/projects/hibernate/browse/HHH-5138

【讨论】:

    猜你喜欢
    • 2014-03-17
    • 2018-03-13
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    相关资源
    最近更新 更多