`
498320858
  • 浏览: 393060 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hibernate3: No Dialect mapping for JDBC type: -1

阅读更多

环境: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>

分享到:
评论

相关推荐

    spring4集成hibernate3:xml方式

    &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.MySQLDialect &lt;property name="hibernate.show_sql"&gt;true &lt;mapping resource="com/myapp/entity/User.hbm.xml"/&gt; &lt;!-- 更多映射文件 --&gt; &lt;/session-...

    hibernate5相关jar包

    3. 数据库连接池:`hibernate-c3p0.jar` 或 `hibernate-jdbc-logging.jar`等 Hibernate需要一个数据库连接池来高效管理数据库连接。C3P0是一个常用的连接池实现,`hibernate-c3p0.jar`提供了对它的支持。而`...

    达梦数7据库j驱动包及方言包,maven依赖jar包,DM达梦数据库jdbc-jar包dialect方言jar包

    1. DmDialect-for-hibernate4.0-7.6.0.165.jar:这个文件是达梦数据库的Hibernate方言实现,适用于Hibernate 4.0版本,版本号为7.6.0.165。它包含了处理达梦数据库特有的SQL语法和功能的类,使得Hibernate能正确地...

    hibernate3入门

    ### hibernate3入门知识点 #### 一、概述 **Hibernate**是一种对象关系映射(Object/Relational Mapping,简称ORM)解决方案,它提供了一种机制,用于将Java对象及其关系映射到关系型数据库中的表及其关系。通过...

    达梦数据库v8.1jdbc驱动.zip

    【Hibernate Dialect&JDBC.txt】文件可能记录了关于Hibernate框架与达梦数据库交互的方言(Dialect)设置和JDBC配置信息。Hibernate是一个流行的ORM(Object-Relational Mapping)框架,它允许开发者用面向对象的...

    Hibernate配置文件

    ### Hibernate配置文件详解 #### 一、概述 Hibernate是一个开源的对象关系映射(ORM)框架,它简化了Java应用程序与数据库交互的过程。在使用Hibernate的过程中,一个关键的配置文件是`hibernate.cfg.xml`。这个文件...

    Hibernate2和Hibernate3连接池配置.doc

    《Hibernate2与Hibernate3连接池配置详解》 在Java的持久层框架中,Hibernate是一个广泛使用的ORM(对象关系映射)工具,它允许开发者将数据库操作转化为对Java对象的操作,极大地提高了开发效率。然而,为了优化...

    使用Eclipse进行Hibernate开发

    **步骤3:** 添加库引用。 - 右击项目,选择“Build Path”&gt;“Configure Build Path”。 - 在“Libraries”选项卡中,点击“Add Jars”或“Add External JARs”来添加所需的库。 #### 四、配置Hibernate **步骤1:**...

    hibernate的dtd 包含hibernate.properties

    在这个主题中,我们主要关注的是Hibernate的配置文件`hibernate.properties`以及它的DTD(Document Type Definition)文件,包括`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`。 首先,`...

    Hibernate 4.0.0 jar包

    1. **hibernate**:代表Hibernate ORM框架,它的核心概念包括实体(Entity)、标识符(Identifier)、属性(Attributes)、映射文件(Mapping Files)、会话(Session)、事务(Transactions)等。 2. **java**:...

    基于IDEA的SSH项目之五:集成Hibernate--程序包

    &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.MySQL5Dialect &lt;property name="hibernate.connection.driver_class"&gt;com.mysql.jdbc.Driver&lt;/property&gt; &lt;property name="hibernate.connection.url"&gt;...

    hibernate小程序源码

    jdbc for scdd &lt;property name="connection.password"&gt;scdd oracle.jdbc.driver.OracleDriver &lt;mapping resource="com/hope/scdd/dao/Binoutputreport.hbm.xml" /&gt; &lt;/session-factory&gt; &lt;/hibernate-...

    Hibernate开发jar包

    &lt;property name="hibernate.dialect"&gt;org.hibernate.dialect.MySQLDialect &lt;!-- 可选配置 --&gt; &lt;property name="hibernate.show_sql"&gt;true &lt;property name="hibernate.format_sql"&gt;true ...

    Hibernate4总结文档

    - `dialect`: 定义数据库方言,如`org.hibernate.dialect.MySQL5Dialect`适应MySQL 5的语法。 - `show_sql`和`format_sql`: 分别开启SQL语句的显示和格式化输出,便于调试。 - `hbm2ddl.auto`: 自动处理数据库表...

    hibernate学习笔记01

    &lt;property name="dialect"&gt;org.hibernate.dialect.MySQL5Dialect &lt;!-- 显示SQL --&gt; &lt;property name="show_sql"&gt;true &lt;!-- 自动创建表 --&gt; &lt;property name="hbm2ddl.auto"&gt;create &lt;!-- 映射文件位置 --&gt; ...

    hibernate--5.Hibernate配置文件详解

    - **Dialect**: `&lt;property name="hibernate.dialect"&gt;`设置数据库方言,如`org.hibernate.dialect.MySQL5Dialect`,确保Hibernate能正确处理特定数据库的SQL语法。 - **Show SQL**: `&lt;property name="hibernate....

    Hibernate 3.x 参考手册

    ### Hibernate 3.x 参考手册关键知识点解析 #### 一、快速入门与Tomcat集成 **1.1 快速开始使用 Hibernate** - **环境准备:** - 使用 Hibernate 前需确保 Java 环境已安装配置。 - 下载 Hibernate 3.x 版本库...

    hibernate 资料hibernate 资料hibernate 资料

    - 首先需要在项目中添加`hibernate3.jar`以及其他相关依赖库(如连接数据库所需的JDBC驱动),并通过设置`CLASSPATH`环境变量确保这些库被正确引用。 - **数据库准备:** - 根据应用需求创建相应的数据库及表结构...

    hibernate3.0 jar包

    3. **查询语言**:Hibernate支持HQL(Hibernate Query Language),这是一种面向对象的查询语言,类似于SQL,但操作的是对象而非表格。此外,Hibernate还支持Criteria API,提供了一种更面向对象的查询方式。 4. **...

Global site tag (gtag.js) - Google Analytics