首页 > 代码库 > No Dialect mapping for JDBC type–4 hibernate查询MySQL中longBlob数据
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: -42 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的值就是-412 }13 }
2、修改配置文件中数据库的hibernate.dialec属性的值,即为刚写的注册类:
<prop key="hibernate.dialect">com.prochanges.framework.utils.BlobMySQLDialect</prop>
No Dialect mapping for JDBC type–4 hibernate查询MySQL中longBlob数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。