Чтобы узнать о спящем режиме, я пишу два примера для практики. Тем не менее, оба они имеют такую же ошибку следующим образом:Ошибка в простом примере 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 первый, и используя затмение генерирует hbm.xml. После этого я пишу основную функцию для управления базой данных. Я пробовал дважды, но у меня такая же проблема.
Может кто-нибудь дать мне совет для решения этой проблемы? До этого использование JDBC создает проект, но это слишком сложно. Поэтому мне нужно учиться спящим. Спасибо.
Дополнение (подробно в этом гибернации примере проекта):
- Мои проекта 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>
My POJO is Person.java. Использование eclipse генерирует Person.hbm.xml.
Проект содержит основные функции: TestPerson.java
государственной статической силы основных (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(); }
Вот информация об ошибке:
создание Initial SessionFactory не удалось. java.lang.NoClassDefFoundError: javax/сохранение/EntityListeners Исключение в потоке "основного" java.lang.ExceptionInInitializerError в com.sample.SessionFactoryUtil (SessionFactoryUtil.java:17) на com.sample.TestPerson.main (TestPerson.. Java: 14) Вызванный: java.lang.NoClassDefFoundError: javax/сохранение/EntityListeners на org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults (JPAMetadataProvider.java:97) в 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 o rg.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1840) at com.sample.SessionFactoryUtil. (SessionFactoryUtil.java:13) ... 1 еще Вызвано: java.lang.ClassNotFoundException: javax.persistence .EntityListeners в java.net.URLClassLoader $ 1.Run (Unknown Source) в java.net.URLClassLoader $ 1.Run (Unknown Source) на java.security.AccessController.doPrivileged (Native Method) в java.net.URLClassLoader .findClass (Неизвестный источник) at java.lang.ClassLoader.loadClass (Неизвестный источник) at sun.misc.Launcher $ AppClassLoader.loadClass (Неизвестный источник) в java.lang.ClassLoader.loadClass (Unknown Source) ... 7 более
В принципе, этот пример может помочь мне на практике, как с помощью спящего режима. Тем не менее, у меня возникла проблема с самого начала, которая создает проект.
Надеюсь, я смог бы решить эту проблему в ближайшее время. Пожалуйста, совет, спасибо.
Вам не хватает jta.jar из библиотек проектов или зависимостей в Eclipse. (Или другой эквивалентный jar, который содержит недостающий класс.) – madth3
Спасибо madth3, теперь я добавляю jta, но все еще есть эта проблема. – Eric
Если вы добавили JTA правильно, у вас не было бы такой же точной проблемы. Пожалуйста, добавьте информацию о проекте Eclipse и как его выполнить. – madth3