zoukankan      html  css  js  c++  java
  • No Dialect mapping for JDBC type–4 hibernate查询MySQL中longBlob数据

    MySQL数据库中的类型为longBlob

    实体类定义为:byte[] 类型

    映射文件配置为:type="org.springframework.orm.hibernate3.support.BlobByteArrayType

    异常信息:

    1 org.hibernate.MappingException: No Dialect mapping for JDBC type: -4
    2     at org.hibernate.dialect.TypeNames.get(TypeNames.java:56)
    3     at org.hibernate.dialect.TypeNames.get(TypeNames.java:81)
    4     at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:370)
    5     at org.hibernate.loader.custom.CustomLoader$Metadata.getHibernateType(CustomLoader.java:559)

    解决办法:

     1、添加注册类:

     1 package com.prochanges.framework.utils;
     2 
     3 import java.sql.Types;
     4 
     5 import org.hibernate.Hibernate;
     6 import org.hibernate.dialect.MySQL5Dialect;
     7 
     8 public class BlobMySQLDialect extends MySQL5Dialect {
     9     public BlobMySQLDialect() {
    10         super();
    11         registerHibernateType(Types.LONGVARBINARY, Hibernate.BLOB.getName());// 注册blob,Types.LONGVARBINARY的值就是-4
    12     }
    13 }

    2、修改配置文件中数据库的hibernate.dialec属性的值,即为刚写的注册类:

     <prop key="hibernate.dialect">com.prochanges.framework.utils.BlobMySQLDialect</prop>

  • 相关阅读:
    ABC223
    ABC224
    线代口胡
    「数学」计算几何
    「字符串」后缀数组
    插值计算
    2021年11月 环太湖骑行记(骑行开始30公里后,因疫情而中止)
    工作感受月记202111月
    js 调用本地 exe 方法(通用,支持目前 大部分主流浏览器,chrome,火狐,ie)
    8.23第七周
  • 原文地址:https://www.cnblogs.com/hutton/p/3931077.html
Copyright © 2011-2022 走看看