Error in Hibernate simple example Beginner level

Eri*_*ric 3 java hibernate

In order to learn hibernate, I write two examples for practising. However, both of them have same error as following:

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示例项目中的详细信息):

  1. 我的Eclipse项目名称:HibernateExa
  2. 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>
    
    Run Code Online (Sandbox Code Playgroud)

  3. 我的POJO是Person.java.使用eclipse生成Person.hbm.xml.

  4. 项目包含主要功能: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();
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 这是错误信息:

    Initial SessionFactory creation failed. java.lang.NoClassDefFoundError: javax/persistence/EntityListeners Exception in thread "main" java.lang.ExceptionInInitializerError at com.sample.SessionFactoryUtil.(SessionFactoryUtil.java:17) at com.sample.TestPerson.main(TestPerson.java:14) Caused by: java.lang.NoClassDefFoundError: javax/persistence/EntityListeners at org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:97) at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.getDefaults(JavaReflectionManager.java:226) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1331) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1756) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840) at com.sample.SessionFactoryUtil.(SessionFactoryUtil.java:13) ... 1 more Caused by: java.lang.ClassNotFoundException: javax.persistence.EntityListeners at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) 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 more

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

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

Ima*_*iri 6

请确保您的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
Run Code Online (Sandbox Code Playgroud)