Hibernate3.2.5: No Dialect mapping for JDBC type: -1 2008-03-18 09:37:02| 分类: JAVA相关 | 标签: |字号大中小 订阅 .
环境:MySQL5+Hibernate3.2.5,使用JDK1.5
java代码大致这样的:
Session sess = MysqlFactory.openSession(); //MysqlFactory是我自己写得一个类
List list = new ArrayList();
try{
list = sess.createSQLQuery("select * from table_1").list();
sess.flush();
}catch(Exception ex){
ex.printStackTrace();
}finally{
MysqlFactory.closeSession();
}
错误Exception:
org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
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)
at org.hibernate.loader.custom.CustomLoader$Metadata.getHibernateType(CustomLoader.java:559)
at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.performDiscovery(CustomLoader.java:485)
at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:501)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1796)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
at org.apache.jsp.jsp.ad.do_.download_005fquestionnaire_jsp._jspService(download_005fquestionnaire_jsp.java:104)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.ibm.crl.inkfish.filters.UserManageFilter.doFilter(UserManageFilter.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.ibm.crl.inkfish.filters.EncodingFilter.doFilter(EncodingFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
问题原因:数据库表中有text类型的字段,而Hibernate在native查询中没有注册这个字段,因此发生这个错误。
解决方法:写一个类、修改hibernate配置文件。 写一个Dialect的子类,这里我 extends MySQL5Dialect类:
package xxx.xxx; //xxx.xxx自己根据情况来写 import java.sql.Types;
import org.hibernate.dialect.MySQL5Dialect;
public class DialectForInkfish extends MySQL5Dialect {
public DialectForInkfish() {
super();
registerHibernateType(Types.LONGVARCHAR, 65535, "text");
}
}
修改Hibernate配置文件hibernate.cfg.xml,把
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
修改为:
<property name="dialect">com.ibm.crl.inkfish.config.DialectForInkfish</property>
原文链接:http://wyhlgx.blog.163.com/blog/static/8072222520082189372145/
分享到:
相关推荐
《Hibernate 3.2.5:持久化框架的里程碑版本》 Hibernate,作为一个开源的对象关系映射(ORM)框架,自其诞生以来就受到了广大Java开发者们的热烈欢迎。特别是3.2.5版本,它是Hibernate发展历史上的一个重要里程碑...
《深入剖析Hibernate 3.2.5:源码解析与实战指南》 Hibernate,作为一款广泛应用的Java对象关系映射(ORM)框架,为开发者提供了便捷的数据持久化解决方案。源代码的学习是理解其工作原理、优化应用的关键。本文将...
《深入剖析Hibernate 3.2.5源代码》 Hibernate是一个强大的对象关系映射(ORM)框架,它在Java开发中扮演着至关重要的角色。3.2.5版本是Hibernate历史上的一个重要里程碑,它提供了丰富的功能和稳定性。本文将深入...
这里的"hibernate3.2.5.jar"是Hibernate 3.2.5版本的主库文件,包含了所有必要的API和实现,使得开发者能够集成Hibernate到他们的应用程序中。 在Hibernate 3.2.5版本中,有以下几个重要的知识点: 1. **实体管理*...
1. **对象关系映射(ORM)**:Hibernate的核心功能是提供ORM服务,将Java对象与数据库表之间的映射关系自动化处理。通过XML配置文件(hibernate.cfg.xml)或注解,开发者可以定义实体类与数据库表的对应关系,使得...
在"hibernate-3.2.5.ga.zip"这个压缩包中,我们看到的可能是一个较早但仍然被广泛使用的Hibernate版本。 在Hibernate 3.2.5 GA中,包含了一系列重要的特性与改进。首先,这个版本支持JPA(Java Persistence API),...
《Hibernate 3.2.5 GA 全面解析》 Hibernate 是一款强大的对象关系映射(ORM)框架,它在Java开发中广泛应用于数据库交互,极大地简化了数据操作。3.2.5 GA 版本是Hibernate的一个稳定版本,包含了众多优化和改进。...
《Hibernate 3.2.5 GA:持久化框架的核心特性与应用》 Hibernate,作为Java领域内广泛应用的对象关系映射(ORM)框架,为开发者提供了便捷的数据持久化解决方案。3.2.5 GA版本是Hibernate的一个稳定版本,它在3.x...
hibernate-3.2.5 API 文档,官方最新版,这个就不用介绍了吧!
Hibernate 3.2.5是Java开发中的一款经典对象关系映射(ORM)框架的旧版本,它在Java企业级应用开发中起到了重要的作用。这个压缩包文件包含了Hibernate框架的完整源码、库文件以及相关的文档,使得开发者可以深入...
3. **类型系统(Type System)**:Hibernate 3.2.5 引入了更多内置类型,如日期时间类型,以更好地适应各种数据库。 4. **性能优化(Performance Enhancements)**:此版本包括许多性能改进,例如更高效的批处理和...
spring-jdbc-3.2.5.RELEASE.jar spring-jdbc-3.2.5.RELEASE.jar
Hibernate3.2.5api帮助文档,chm格式 该文档只适合在IE6下使用
apache-maven-3.2.5.zip 安装包,apache-maven-3.2.5.zip 安装包apache-maven-3.2.5.zip 安装包apache-maven-3.2.5.zip 安装包apache-maven-3.2.5.zip 安装包apache-maven-3.2.5.zip 安装包apache-maven-3.2.5.zip ...
这里我们关注的是一个经典的组合:Spring 2.5、Struts 2.1.6和Hibernate 3.2.5的整合。这三大框架分别承担了不同的职责:Spring作为依赖注入(DI)和面向切面编程(AOP)的核心,Struts提供了模型-视图-控制器(MVC...
《Hibernate 3.2.5 Java Docs:深入理解ORM框架》 Hibernate,作为一个强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的编程方式来处理数据库,从而避免了繁琐的SQL代码。...