我的环境是:SQL Server2005 + Hibernate3.2.5
报错如下:
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 SQLServerDialectt类:
package com.zy.util;
import java.sql.Types;
import org.hibernate.Hibernate;
import org.hibernate.dialect.SQLServerDialect;
public class DialectForInkfish extends SQLServerDialect {
public DialectForInkfish() {
super();
//registerHibernateType(Types.LONGVARCHAR, 65535, "text");//.LONGVARCHAR
registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
registerHibernateType(-1, Hibernate.STRING.getName());
}
}
修改Hibernate配置文件hibernate.cfg.xml,把
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
修改成:
<property name="dialect">
com.zy.util.DialectForInkfish
</property>
说明: 如果你的数据库是mysql,而又用了decimal类型,报错应该是 No Dialect mapping for JDBC type: 3 . 注意这个3, 它说明hibernate不能将这种数据类型映射到你的java类中. 就需要在自定义的方言中用到:
registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
分享到:
相关推荐
《Hibernate 3.2.5:持久化框架的里程碑版本》 Hibernate,作为一个开源的对象关系映射(ORM)框架,自其诞生以来就受到了广大Java开发者们的热烈欢迎。特别是3.2.5版本,它是Hibernate发展历史上的一个重要里程碑...
总之,深入学习Hibernate 3.2.5的源码有助于我们更好地理解和运用这个框架,从而提升开发效率,解决实际问题。通过Eclipse工程的实践,我们可以从源码层面洞悉其内部运作,进一步提升自己的Java开发技能。
《深入剖析Hibernate 3.2.5源代码》 Hibernate是一个强大的对象关系映射(ORM)框架,它在Java开发中扮演着至关重要的角色。3.2.5版本是Hibernate历史上的一个重要里程碑,它提供了丰富的功能和稳定性。本文将深入...
1. **对象关系映射(ORM)**:Hibernate的核心功能是提供ORM服务,将Java对象与数据库表之间的映射关系自动化处理。通过XML配置文件(hibernate.cfg.xml)或注解,开发者可以定义实体类与数据库表的对应关系,使得...
这里的"hibernate3.2.5.jar"是Hibernate 3.2.5版本的主库文件,包含了所有必要的API和实现,使得开发者能够集成Hibernate到他们的应用程序中。 在Hibernate 3.2.5版本中,有以下几个重要的知识点: 1. **实体管理*...
在"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 ...
《Hibernate 3.2.5 Java Docs:深入理解ORM框架》 Hibernate,作为一个强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的编程方式来处理数据库,从而避免了繁琐的SQL代码。...
这里我们关注的是一个经典的组合:Spring 2.5、Struts 2.1.6和Hibernate 3.2.5的整合。这三大框架分别承担了不同的职责:Spring作为依赖注入(DI)和面向切面编程(AOP)的核心,Struts提供了模型-视图-控制器(MVC...