`

Hibernate程序碰到的两个问题

阅读更多
这个问题调了两天,最后发现是hibernate3.2.4的问题,转载一下,希望帮助遇到同样问题的同学。
http://hi.baidu.com/deimy/blog/item/62c1cc5cb6053741faf2c04f.html

一、Hibernate插入数据失败错误
错误信息:
init:
deps-module-jar:
deps-ear-jar:
deps-jar:
compile-single:
run-main:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Hibernate: insert into user (name, age, id) values (?, ?, ?)
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [cn.deimy.User]
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:40)
        at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2158)
        at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2638)
        at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
        at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
        at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
        at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
        at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
        at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
        at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
        at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
        at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
        at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
        at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
        at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
        at cn.deimy.FirstHibernate.main(FirstHibernate.java:41)
Caused by: java.sql.SQLException: No value specified for parameter 3
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
        at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:1851)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1665)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1608)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1593)
        at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:73)
        at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:33)
        ... 16 more
Java Result: 1
BUILD SUCCESSFUL (total time: 5 seconds)

这个错误是由Hibernate 3.2.4自身存在的bug引起,具体介绍见:Since 3.2.4 no value specified for row id,使用之前的老版本Hibernate或下载最近的Hibernate 3.2.4-sp1即可解决问题。

参考资料:
http://dev.eclipse.org/newslists/news.eclipse.technology.emft/msg02664.html

Since 3.2.4 no value specified for row id
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2605

http://www.guj.com.br/posts/list/59353.java

二、log4j没有配置的警告
警告信息:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
这是由于没有配置log4j.properties属性文件造成

把hibernate-3.2/etc目录下的log4j.properties文件复制到src目录(需要build项目后再运行)或直接copy到WEB-INF/classes目录下即可。

log4j.logger.org.hibernate=info | debug | error
log4j.properties属性文件的这一行配置控制台日志输出级别
QNjrsjIxo6dGJ7oTbl0Ard6VNnDHDSI7ras6QJCoMHAiO6jW7o4+uF1Vy5h6
P8VrpoZJjZjxI/nYNF0k6e03XaWXMtJBJCWdyXM6aEc7whCaM9sKk4MYIpVj
MgqpzWCxvtxFkukqM3hivz6LfpzBeH5nnhGMXz9T9jZj+yLGHCUW4QOS2kLr
xFjLI5uynKZRzHUgTFpSPm+hcHeTQnV2OQRWC7d9ShFMY4n0OjC7Tsbvd3Jk
cu4BmaSnsA/+TD9T3TCf5VossGBR6B7E9RWFNW+83gFjZrQpB4mPADI9k9Km
Iti1jTwswNmoy2tbzIo5PWnlXmcqjpxLOjySgaT9Gg==

分享到:
评论

相关推荐

    springMvc+Hibernate实现的一个问题管理系统

    本文将深入探讨如何使用SpringMvc和Hibernate这两个强大的框架,构建一个功能完善的问题管理系统。首先,我们来看看SpringMvc和Hibernate的核心概念及其在项目中的作用。 SpringMvc是Spring框架的一个模块,专门...

    spring+hibernate包冲突问题

    在开发Java Web应用程序时,Spring和Hibernate是两个非常流行的框架,它们分别负责依赖注入与对象关系映射。然而,由于这两个框架各自都有自己的容器和配置,所以在整合使用时可能会遇到包冲突的问题。以下是对这个...

    hibernate+mysql乱码问题

    在开发Java Web应用程序时,经常会遇到数据库操作中的字符编码问题,特别是当使用Hibernate框架与MySQL数据库结合时。本文将深入探讨“hibernate+mysql乱码问题”的原因、解决方案以及如何预防这类问题。 首先,...

    struts2+hibernate的两个小工程

    这两个框架的结合使用可以帮助开发者更高效地构建Web应用程序,尤其对于初学者来说,理解它们的工作原理和集成方式至关重要。 Struts2是一个强大的MVC框架,它继承了Struts1的优点并增强了许多功能,如拦截器、插件...

    struts+hibernate 项目

    Struts和Hibernate是Java Web开发中的两个重要框架,它们在构建高效、可维护的Web应用程序时发挥着关键作用。这个“Struts+Hibernate项目”旨在为开发者提供一个学习和实践的平台,帮助他们快速理解这两种框架的集成...

    Hibernate 使用缓存时,数据同步问题

    为了解决这个问题,可以在每次页面加载时,先执行`session.clear()`清除一级缓存,然后在创建SQLQuery对象时设置`query.setCacheMode(CacheMode.IGNORE)`,确保每次查询都直接从数据库中获取最新数据,而不是依赖...

    hibernate的中文问题的解决方案

    通过以上两种方法之一,可以有效地解决Hibernate在处理中文字符时出现的乱码问题。关键在于确保客户端与服务器端之间传输数据时所使用的字符集保持一致。如果仍然遇到问题,建议检查数据库表的字符集设置、应用程序...

    Hibernate大总结/Hibernate面试题大全

    但在某些情况下,可能会分开使用 `hibernate.properties` 和 `hibernate.cfg.xml` 两个文件: - `hibernate.properties`: 主要用于配置数据连接、二级缓存、连接池等信息。 - `hibernate.cfg.xml`: 主要用于配置...

    struts+hibernate web小项目

    在Java Web开发领域,Struts和Hibernate是两个非常重要的框架,它们分别处理表现层(Presentation Layer)和持久层(Persistence Layer)的任务。本项目是一个基于Struts和Hibernate的一对一关系的简单Web应用,非常...

    spring+Hibernate开发文档

    Spring和Hibernate是两个非常重要的Java开发框架,它们在企业级应用开发中占据着核心地位。Spring是一个全面的、模块化的企业应用开发框架,而Hibernate则是一个强大的对象关系映射(ORM)工具,使得开发者可以方便...

    Hibernate Recipes

    《Hibernate Recipes》不仅是一本学习Hibernate框架的好书,也是开发者解决日常开发中遇到问题的重要参考资源。通过本书提供的丰富示例和深入讲解,读者可以快速掌握Hibernate的核心概念和技术要点,提升自己的开发...

    hibernate5.2.7-src源码

    Hibernate是一个开源的ORM框架,它为Java开发人员提供了在Java应用程序中操作数据库的强大工具。通过将Java类与数据库表之间的映射关系进行管理,Hibernate简化了数据访问层的代码编写,使得开发者能够更专注于业务...

    struts_hibernate整合

    Struts2和Hibernate是两种非常流行的Java开源框架,它们分别用于MVC(Model-View-Controller)架构的Web开发和对象关系映射(ORM)。在Java Web开发中,整合Struts2与Hibernate可以构建出高效、灵活且易于维护的业务...

    hibernate源码release-4.1.4.Final版

    通过深入学习Hibernate 4.1.4.Final的源码,我们可以更好地理解其设计思想,提升我们的编程技巧,同时也能为日常开发中遇到的问题提供解决方案。这是一份宝贵的资源,无论是对于初学者还是经验丰富的开发者,都值得...

    Android应用源码Hibernate4Android.zip

    4. "AHibernate-sample"和"AHibernate" - 这两个文件夹很可能是项目的主目录,包含实际的源代码。"AHibernate-sample"可能是一个示例项目,展示如何在Android中集成和使用Hibernate,而"AHibernate"可能是核心库或...

    spring,hibernate做的用户管理系统源码,带登陆,带分页功能

    总的来说,这个用户管理系统展示了如何利用Spring和Hibernate这两个强大的Java框架来构建一个功能完整的应用,涉及了数据库操作、用户认证、分页显示等多个关键知识点。对于学习和理解Java企业级开发流程,以及...

    3个struts2+hibernate的课程作业项目加实验报告

    Struts2和Hibernate是Java开发中的两个重要框架,它们在企业级应用开发中扮演着核心角色。Struts2是一个强大的MVC(Model-View-Controller)框架,它为Web应用程序提供了一种组织业务逻辑和用户界面的方式。而...

    hibernate-5.2.10最新jar包

    提供在使用Hibernate过程中可能遇到的问题和解决方法,以及提高开发效率和代码质量的最佳实践。 10. Hibernate与Spring整合: Hibernate常与Spring框架结合使用,Spring的声明式事务管理和DI(依赖注入)可以...

Global site tag (gtag.js) - Google Analytics