`
weihan1314
  • 浏览: 15388 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Hibernate错误提示以及解决方法总结

    博客分类:
  • J2EE
阅读更多
1.错误提示:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
at org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:96)
at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.getDefaults(JavaReflectionManager.java:226)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1355)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1826)
at StudentTest.main(StudentTest.java:17)

原因:没有引入hibernate-distribution-3.6.0.Final\lib\jpa下面的hibernate-jpa-2.0-api-1.0.0.Final.jar



2.错误提示:

Hibernate: insert into Student (name, age, id) values (?, ?, ?)
Exception in thread "main" org.hibernate.SessionException: Session was already closed
at org.hibernate.impl.SessionImpl.close(SessionImpl.java:320)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:589)
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:344)
at $Proxy0.close(Unknown Source)
at StudentTest.main(StudentTest.java:22)

原因:在程序中有这么一句Session session = sf.getCurrentSession();将其改为Session session = sf.openSession();问题解决,或者用if(session.isOpen())判断一下,具体原因不是很清楚,读者可以参考http://rmn190.javaeye.com/blog/370864



3.错误提示:

Hibernate: insert into Student (name, age, id) values (?, ?, ?)
Exception in thread "main" org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:268)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
at StudentTest.main(StudentTest.java:21)
Caused by: java.sql.BatchUpdateException: Duplicate entry '7' for key 'PRIMARY'
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1693)
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1108)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 8 more

错误原因:主键的值不能重复,数据表中id=7的数据已经存在,所以导致插入数据失败!




4.错误提示(使用Session session = sf.getCurrentSession()):

Exception in thread "main" org.hibernate.HibernateException: No CurrentSessionContext configured!
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:683)
at StudentTest.main(StudentTest.java:18)

错误原因:从3.0.1版本开始,Hibernate增加了 SessionFactory.getCurrentSession()方法。一开始,它假定了采用 JTA事务, JTA事务定义了当前session的范围和上下文(scope and context)。

错误主要原因是在hibernate.cfg.xml文件中忘记进行了如下设置:hibernate.current_session_context_class

如果是在web容器中运行hibernate,则在hibernate.cfg.xml中加入这句话:

<propertyname="hibernate.current_session_context_class">jta</property>

如果是在一个单独的需要进行JDBC连接的javaapplication中运行hibernate,则这样设置:

<propertyname="hibernate.current_session_context_class">thread</property>



另外提示一个小问题:有时候按下@时没有提示,可以在窗口--首选项--java--内容辅助(content assist)下面将自动激活设置如下:

分享到:
评论

相关推荐

    Hibernate配置常见错误

    本文将深入探讨Hibernate配置中常见的错误及其解决方法。 一、SessionFactory的创建失败 错误表现:在初始化SessionFactory时,可能出现“org.hibernate.HibernateException: Could not instantiate dialect class...

    hibernate校验jar包

    - 国际化:Hibernate校验支持国际化错误消息,可以根据不同语言环境显示不同的错误提示。 - 组验证:可以定义一组验证规则,只有当所有规则都通过时,验证才成功。 总结,Hibernate校验jar包是Java企业级开发中的...

    Struts2+hibernate3

    在本文中,我们将探讨`Struts2 + Hibernate3`开发中常见的问题以及解决方案。 首先,让我们来看第一个问题。在使用`Hibernate3`进行数据保存时,如果数据库没有反映出保存的数据,这可能是由于缺少了`...

    Struts2+Hibernate实现的登录功能

    总结来说,Struts2和Hibernate的结合为Web开发提供了一种高效且灵活的解决方案。通过Action、拦截器、实体类和数据库操作,它们共同实现了用户登录功能,为初学者提供了一个良好的学习起点。同时,这个实例也展示了...

    strut2+hibernate的图书管理系统

    总结,"Strut2+Hibernate的图书管理系统"是一个结合了MVC模式与ORM技术的Java Web应用,利用Struts2处理请求并组织业务逻辑,借助Hibernate简化数据库操作,旨在提供一个功能全面、易于操作的图书管理解决方案。...

    Hibernate在eclipse中反向生成

    #### 四、常见问题及解决方法 - **Hibernate Tools 插件安装失败**:确保网络连接正常,重新尝试安装或检查 Eclipse 版本是否支持该插件。 - **反向生成失败**:检查数据库连接配置是否正确,以及是否有权限读取...

    hibernate-validator-5.0.3.Final

    Hibernate Validator支持多语言错误消息,通过资源文件可以轻松配置不同语言的错误提示,提供更好的用户体验。 6. **验证组** 验证组允许按需执行特定的验证规则集,这在处理如注册和更新场景时非常有用,可以...

    hibernate3.2开篇

    3. 错误排查:列举常见的Hibernate使用问题及解决方法,帮助开发者快速定位并解决问题。 总结,Hibernate3.2版本以其强大的功能和易用性,成为了Java开发中的必备工具。通过深入源码学习和实际项目应用,开发者可以...

    eclipse中配置Hibernate的只能感知

    为了提升开发体验,可以通过配置Eclipse来实现对Hibernate配置文件(如`hibernate.cfg.xml`)和映射文件(如`.hbm.xml`)的智能感知功能,从而帮助开发者更快速准确地定位和解决问题。 #### 配置智能感知的步骤详解...

    spring错误总结.txt

    ### Spring错误总结与解决方案 #### 一、DefaultPointcutAdvisor BeanCreationException **问题描述**: 在尝试创建名为`org.springframework.aop.support.DefaultPointcutAdvisor`的Bean时遇到了`...

    SSH各种问题集合及解决方案

    ### SSH各种问题集合及解决方案 #### 一、SSH基础启动问题 **问题描述:** SSH服务启动时出现异常,...以上是对SSH及其周边技术领域内常见问题的总结与解决方案,希望能够帮助新手快速定位并解决问题,提高学习效率。

    ssh整合出现的一些问题的解决

    在Spring配置文件中,尝试使用某些特定命名空间处理程序时,可能会遇到该错误提示,表明Spring找不到对应的处理类。 **解决方案**: - **检查依赖库**:确保Spring相关的所有依赖库版本一致且完整。 - **清理并重建...

    struts2+hibernate3.3+spring3.0配置

    #### 四、常见问题及解决方案 **1. MyEclipse错误处理** - **An internal error occurred during: "Generating Artifacts"**:这通常是由于MyEclipse的某些插件出现问题导致的,可以通过重启MyEclipse来尝试解决...

    Excel 导出 struts2 spring hibernate

    总结起来,本主题涵盖的核心知识点包括Struts2的Action、Spring的依赖注入和事务管理、Hibernate的数据库操作、Apache POI库的使用以及文件上传和下载的处理。通过理解这些内容,开发者能够构建起一个完整的、支持...

    Windows 下整合 weblogic10 jsf1.2 hibernate3

    总结来说,在 Windows 环境下整合 WebLogic 10、JSF 1.2 和 Hibernate 3 需要注意的技术要点包括但不限于:正确配置命名空间以避免 XML 解析错误;合理管理 Servlet 输出流以避免冲突;确保 Antlr 相关库的正确安装...

    JAVA常见错误大全.pdf

    错误提示 "oracle.jdbc.driver.OracleDriver" 可能意味着程序试图加载Oracle数据库驱动,但是没有找到或者类路径设置不正确。解决方法是确保所有需要的jar包都已经添加到项目的类路径中,例如 "ojdbc14.jar"。 2. ...

    SPring+structs2+hibernate框架搭建

    ##### 3.6 常见问题及解决方案 1. **Spring配置文件问题**:如果在配置Spring的`applicationContext.xml`文件时遇到错误“The prefix "context" for element "context:component-scan" is not bound”,需要在配置...

    结合SpringMVC和Hibernate-validator,自动生成前台的js验证代码.docx

    此外,对于错误提示信息的国际化问题,可以利用JavaScript的i18n库来实现,确保前后端提示信息的一致性。 总结起来,结合SpringMVC和Hibernate-validator,利用自定义JSP标签库可以自动化生成前端JavaScript验证...

Global site tag (gtag.js) - Google Analytics