`
caiceclb
  • 浏览: 242477 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

使用hibernate annotation出现的异常解决

    博客分类:
  • JEE
阅读更多
root cause 
java.lang.ExceptionInInitializerError
	cn.tofishes.util.HibernateUtil.<clinit>(HibernateUtil.java:17)
	cn.tofishes.servlet.AddEvent.doGet(AddEvent.java:34)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause 
org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
	org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
	org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
	org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:426)
	org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:128)
	org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2073)
	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1298)
	org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
	cn.tofishes.util.HibernateUtil.<clinit>(HibernateUtil.java:12)
	cn.tofishes.servlet.AddEvent.doGet(AddEvent.java:34)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

 

出现以上异常,其实不能太怨我,配置文件啥的都没错,尤其是看到Hibernate Dialect,就以为dialect没配置或配置错了,其实不是的,错就错在官方的文档描述上,说下版本:

 

hibernate 3.2 + hibernate-annotations-3.4.0.GA

 

按照hibernate-annotations-3.4.0.GA发布包中的doc\reference\zh_cn中的文档(后注:完了去看了看英文文档,晕,是正确的,原来是翻译的错误... ...):

 

文档中 写道
我们推荐在一个包装器(wrapper)类HibernateUtil 的静态初始化代码块中启动Hibernate。或许你在Hibernate文档的其他很多地方看到过这个类, 但是要在你的项目中使用注解,还需要对这个辅助(helper)类进行扩展。扩展如下:
  static {
        try {
            /*  就是这句了,出问题  */	
            sessionFactory = new AnnotationConfiguration().buildSessionFactory();
        } catch (Throwable ex) {
            // Log exception!
            throw new ExceptionInInitializerError(ex);
        }
    }
 

 

只有改成sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();我这里才成功了。

 

另外遇到:

Log4j 错误: java.lang.NoSuchFieldError: TRACE 

 原因是Log4j的版本不兼容导致,换成hibernate-annotations-3.4.0.GA发布包中的log4j就好了。

 

org.hibernate.MappingException: Unknown entity

 原因是import org.hibernate.annotations.Entity;这个根据Eclipse自动导入的类是不对的,改成import javax.persistence.Entity;(位于ejb3-persistence.jar中)

分享到:
评论
1 楼 冬天秋天 2011-11-11  
老兄这都被你发现了,高!

相关推荐

    hibernate-validator-annotation-processor-4.3.1.final-sources.jar.zip

    当验证失败时,Hibernate Validator会抛出异常并提供详细的错误信息。通过查看源码,开发者可以理解这些错误信息的生成机制,以便更有效地调试和修复问题。 总之,这个压缩包提供了深入学习和研究Hibernate ...

    hibernate性能优化.doc

    解决方法是使用 HQL、Criteria 或 Hibernate Annotation 中的 lazy、batchSize 和 join fetch 等方法来优化查询。 例如,使用 HQL: ```java String hql = "from News n left join fetch n.category c"; Query ...

    配置hibernate-distribution-3.6.6.Final时出现的问题及解决办法

    ### 配置Hibernate 3.6.6.Final时出现的问题及解决办法 #### 问题背景 在配置和使用Hibernate 3.6.6.Final的过程中,开发者可能会遇到一些问题,尤其是在采用注解(Annotation)的方式进行配置时。本文将详细介绍在...

    Struts2+Spring2.5+Hibernate3+annotation 整合程序

    5. 故障排查:可能遇到的问题及解决办法,如类加载冲突、空指针异常等。 文件“lib3”可能是项目所需的库文件夹,包含了整合这些框架所需的各种jar包,如struts2、spring、hibernate以及相关的依赖库。这些库文件...

    spring3,hibernate4 配置声明式事务管理(annotation方式)

    Spring提供了强大的依赖注入(DI)和面向切面编程(AOP),而Hibernate则是一个优秀的对象关系映射(ORM)解决方案,使得开发者可以方便地操作数据库。当我们需要在应用程序中进行事务管理时,Spring提供了一种声明...

    struts1.3+spring2.5+hibernate3.3 组合开发 annotation实现

    在本项目中,这些框架的集成使用了注解(Annotation)来简化配置,使得代码更加简洁和易于维护。 Struts1.3 是一个基于 Model-View-Controller (MVC) 模式的开源框架,用于构建动态 Web 应用。它提供了一种结构化的...

    spring+hibernate

    标题"spring+hibernate"指的是将这两个框架结合使用,形成一个强大的Java开发解决方案。Spring通过其Transaction Management(事务管理)模块与Hibernate集成,能够提供声明式事务处理,这大大简化了事务控制的复杂...

    Hibernate源码解析(二)

    在Hibernate中,实体类通常使用注解(@Entity)进行标记,属性则通过(@Id, @GeneratedValue, @Column等)来定义其在数据库中的映射。Hibernate的Enhancer类可以动态增强实体类,使其具备懒加载、代理等功能。在源码中,...

    马士兵hibernate学习笔记.docx

    Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,它有效地解决了Java应用程序与数据库之间的数据交互问题,使得开发者可以更专注于业务逻辑,而不是繁琐的数据操作。 1. **O/R Mapping**:对象关系映射...

    hibernate下的mysql方面源代码.zip

    Hibernate提供了基于Annotation的事务管理,可以在实体类的方法上使用@Transactional注解,让Spring容器自动管理事务的开始、提交和回滚。同时,也可以通过Session的beginTransaction()、commit()和rollback()方法...

    Hibernate_3.2.0中文参考

    - **实体映射**:使用Hibernate Annotation配置实体类,指定字段与数据库列的对应关系。 - **初始化SessionFactory**:通过Configuration类加载配置,创建SessionFactory实例。 - **使用Session**:创建Session,...

    struts hibernate sprint 经典实例 配置文件的设置

    Struts处理MVC模式中的Controller部分,Spring提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,而Hibernate则是持久层的优秀解决方案,简化了数据库操作。 在构建一个整合Struts、Hibernate和Spring的经典...

    hibernate开发指南.rar

    12. **实战案例**:通过实际的项目案例,演示如何在应用中集成Hibernate,实现数据的增删改查,以及解决可能出现的问题。 通过《Hibernate开发指南》的学习,开发者不仅能掌握Hibernate的基本用法,还能理解其设计...

    spring-hibernate整合实例

    使用`&lt;tx:annotation-driven&gt;`标签开启基于注解的声明式事务管理。 3. 实体类和DAO:编写实体类,遵循Hibernate的规则,例如使用@Id标识主键,使用@ManyToOne、@OneToMany等标注关联关系。接着,创建DAO(Data ...

    spring hibernate 参考手册.rar

    在Java开发领域,Spring框架和Hibernate持久化框架是两个非常重要的组件,它们各自解决不同的问题,但又可以完美结合,为开发者提供强大的企业级应用支持。Spring以其灵活的依赖注入、面向切面编程以及丰富的模块,...

    spring整合Hibernate学习笔记.docx

    2. **使用 HibernateTemplate**: Spring 为 Hibernate 提供了一个抽象层,即 HibernateTemplate 类,它封装了 Session 的常用操作,如保存、更新、删除和查询等,同时处理了事务管理和异常转换。在 Spring 容器中...

    StrutsSpringHibernate三框架整合包

    4. 整合Struts和Spring:使用Spring的Struts插件或基于Annotation的配置,将Action交给Spring管理。 5. 整合Spring和Hibernate:通过SessionFactory Bean,配置数据源和Hibernate属性,使Spring能够管理...

    Java常见异常

    在Java编程中,异常处理是不可或缺的一部分,它帮助开发者识别并修复程序运行时可能出现的问题...同时,良好的编程习惯,如使用try-catch块捕获异常、编写单元测试,以及定期更新依赖库,都能有效减少出现异常的概率。

    TongWeb上应用移植常见问题.doc

    本文将详细解析三个主要问题及其解决方案,包括JPA冲突、validation问题和annotation扫描异常。 首先,针对JPA引起的问题,TongWeb自带了JPA实现,但这与很多应用中使用的Hibernate JPA版本可能存在冲突。解决方法...

Global site tag (gtag.js) - Google Analytics