jpa查询blob数据抛出异常:No Dialect mapping for JDBC type -4
2010-06-26 11:45
591 查看
用entityManager.createNativeQuery(sql).list()查询blob数据时,抛出了下面的异常:
Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: -4
at org.hibernate.dialect.TypeNames.get(TypeNames.java:56)
at org.hibernate.dialect.TypeNames.get(TypeNames.java:81)
at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:370)
其中entityManager为javax.persistence.EntityManager类型,此时,需要注册BLOB类型,编写一个继承MySQL5Dialect的类:
然后在persistence.xml配置文件里修改数据库方言声明:
<property name="hibernate.dialect" value="com.kin.mail.dialect.BlobMySQLDialect" />
Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: -4
at org.hibernate.dialect.TypeNames.get(TypeNames.java:56)
at org.hibernate.dialect.TypeNames.get(TypeNames.java:81)
at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:370)
其中entityManager为javax.persistence.EntityManager类型,此时,需要注册BLOB类型,编写一个继承MySQL5Dialect的类:
package com.kin.mail.dialect; import java.sql.Types; import org.hibernate.Hibernate; import org.hibernate.dialect.MySQL5Dialect; /** * 注册BLOB类型 * @author kin * */ public class BlobMySQLDialect extends MySQL5Dialect { public BlobMySQLDialect () { super(); registerHibernateType(Types.LONGVARBINARY, Hibernate.BLOB.getName());//注册blob,Types.LONGVARBINARY的值就是-4 } }
然后在persistence.xml配置文件里修改数据库方言声明:
<property name="hibernate.dialect" value="com.kin.mail.dialect.BlobMySQLDialect" />
相关文章推荐
- hibernate查询异常:No Dialect mapping for JDBC type:-9(sql server)
- No Dialect mapping for JDBC type–4 hibernate查询MySQL中longBlob数据
- Hibernate SQL查询:No Dialect mapping for JDBC type: -9
- No Dialect mapping for JDBC type: -1异常
- ORACLE11g:No Dialect mapping for JDBC type: -9,2011解决方案
- MySQL错误(org.hibernate.MappingException: No Dialect mapping for JDBC type: -4) 解决方案
- org.hibernate.MappingException: No Dialect mapping for JDBC type: -4
- No Dialect mapping for JDBC Type:-9
- No Dialect mapping for JDBC type: -1
- No Dialect mapping for JDBC type: -1问题解决方案
- SQLite+Hibernate No Dialect mapping for JDBC type: 0
- No Dialect mapping for JDBC type:?类型的错误
- org.hibernate.MappingException: No Dialect mapping for JDBC type: -9(-*)
- Hibernate3.2.5: No Dialect mapping for JDBC type: -1
- org.hibernate.MappingException: No Dialect mapping for JDBC type: 101 Position: 0
- No Dialect mapping for JDBC type: -1
- org.hibernate.MappingException: No Dialect mapping for JDBC type: -4
- org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
- org.hibernate.MappingException: No Dialect mapping for JDBC type:
- org.hibernate.MappingException: No Dialect mapping for JDBC type: -1 解决方法