加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Hibernate中的错误简单示例初学者级别

发布时间:2020-12-15 04:13:33 所属栏目:Java 来源:网络整理
导读:为了学习hibernate,我写了两个练习的例子.但是,它们都有如下错误: Failed to create sessionFactory object.java.lang.NoClassDefFoundError: javax/transaction/SystemException Exception in thread “main” java.lang.ExceptionInInitializerError Caus
为了学习hibernate,我写了两个练习的例子.但是,它们都有如下错误:

Failed to create sessionFactory object.java.lang.NoClassDefFoundError:
javax/transaction/SystemException Exception in thread “main”
java.lang.ExceptionInInitializerError Caused by:
java.lang.NoClassDefFoundError: javax/transaction/SystemException at
java.lang.Class.forName0(Native Method) at
java.lang.Class.forName(Unknown Source) at
org.jboss.logging.Logger.getMessageLogger(Logger.java:2248) at
org.jboss.logging.Logger.getMessageLogger(Logger.java:2214) at
org.hibernate.cfg.Configuration.(Configuration.java:184) at
com.example.ManageEmployee.main(ManageEmployee.java:17)

基本上,我首先编写POJO,并使用eclipse生成hbm.xml.之后,我编写了管理数据库的主要功能.我试了两次,但遇到了同样的问题.

有人可以给我建议解决这个问题吗?在此之前,使用JDBC构建项目,但这太复杂了.所以我需要学习hibernate.谢谢.

补充(此hibernate示例项目中的详细信息):

>我的Eclipse项目名称:HibernateExa
> hibernate.cfg.xml:

<session-factory>

    <!-- hibernate dialect -->

    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.password">hibernateTest</property>

    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernatetest;</property>
    <property name="hibernate.connection.username">hibernater</property>
    <property name="hibernate.default_schema">hibernatetest</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

    <!-- Automatic schema creation(begin) -->
    <property name="hibernate.hbm2ddl.auto">create</property>
    <!-- Simple memory-only cache -->
    <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
    <!-- Enable Hibernate's automatic session context management -->
    <property name="current_session_context_class">thread</property>

    <!-- mapping files with external dependencies -->
    <mapping resource="com/sample/Person.hbm.xml"/>


</session-factory>

>我的POJO是Person.java.使用eclipse生成Person.hbm.xml.
> Project包含main函数:TestPerson.java

public static void main(String [] args){

    Session session = SessionFactoryUtil.getSessionFactory().getCurrentSession();

    session.beginTransaction();

    createPerson(session);
    queryPerson(session);

}

public static void createPerson(Session session){
    Person person = new Person();

    person.setName("Jack");
    person.setSurname("Yu");
    person.setAddress("White House");

    session.save(person);
}

private static void queryPerson(Session session){
    Query query = session.createQuery("from person");
    List<Person> list = new ArrayList<Person>();
    list = query.list();
    java.util.Iterator<Person> iter = list.iterator();

    while(iter.hasNext()){
        Person person = iter.next();
        System.out.println("Person: "" + person.getName() + "","+ person.getSurname() + "","
                + person.getAddress());
    }

    session.getTransaction().commit();
}

>这是错误信息:

初始SessionFactory创建失败. java.lang.NoClassDefFoundError:javax / persistence / EntityListeners
线程“main”java.lang.ExceptionInInitializerError中的异常
????在com.sample.SessionFactoryUtil.(SessionFactoryUtil.java:17)
????在com.sample.TestPerson.main(TestPerson.java:14)
引起:java.lang.NoClassDefFoundError:javax / persistence / EntityListeners
????在org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:97)
????在org.hibernate.annotations.common.reflection.java.JavaReflectionManager.getDefaults(JavaReflectionManager.java:226)
????在org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1331)
????在org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1756)
????在org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840)
????在com.sample.SessionFactoryUtil.(SessionFactoryUtil.java:13)
????……还有1个
引起:java.lang.ClassNotFoundException:javax.persistence.EntityListeners
????在java.net.URLClassLoader $1.run(未知来源)
????在java.net.URLClassLoader $1.run(未知来源)
????at java.security.AccessController.doPrivileged(Native Method)
????at java.net.URLClassLoader.findClass(Unknown Source)
????at java.lang.ClassLoader.loadClass(Unknown Source)
????at sun.misc.Launcher $AppClassLoader.loadClass(Unknown Source)
????at java.lang.ClassLoader.loadClass(Unknown Source)
????……还有7个

基本上,这个例子可以帮助我练习如何使用hibernate.尽管如此,我在一开始就遇到了创建项目的问题.

希望我能尽快解决这个问题.请一些建议,谢谢.

解决方法

请确保您的lib文件夹中包含所有这些jar文件:

lib/antlr.jar
lib/cglib.jar
lib/asm.jar
lib/commons-collections.jar
lib/commons-logging.jar
lib/jta.jar
lib/dom4j.jar
lib/log4j.jar
lib/hibernate3.jar

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读