【问题标题】:java.lang.NoClassDefFoundError: org/hibernate/boot/registry/classloading/spi/ClassLoaderServicejava.lang.NoClassDefFoundError: org/hibernate/boot/registry/classloading/spi/ClassLoaderService
【发布时间】:2016-04-05 15:46:04
【问题描述】:

我是 hibernate 的新手,我正在尝试测试我的实体(持久性) 并且这个错误一直显示

Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/boot/registry/classloading/spi/ClassLoaderService
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:80)
at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:71)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:52)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at Pers.PersistTest.main(PersistTest.java:20)
Caused by: java.lang.ClassNotFoundException:org.hibernate.boot.registry.classloading.spi.ClassLoaderService
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more

这是我的实体

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
 public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int idUser;
...
private boolean isAdmin;

(当然还有 getter 和 setter 以及构造函数)

这是测试类

public class PersistTest {
public static void main(String[] args) { 

    EntityManagerFactory emf=Persistence.createEntityManagerFactory("PU");
    EntityManager em = emf.createEntityManager();
    Session s = new AnnotationConfiguration()  
            .configure().buildSessionFactory().openSession();
    Transaction t = s.beginTransaction();

    User c = new User();
    c.setIdUser(1);
    ...
    c.setAdmin(true);

    em.persist(c);
    t.commit();
    s.close();
    System.out.print("success");
}

这是persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/persistence        http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
         version="2.0">
  <persistence-unit name="PU" transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
           <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/GBO1" />
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="" />
  </properties>

这是我的休眠依赖项

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.0.6.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>3.2.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>ejb3-persistence</artifactId>
<version>3.3.2.Beta1</version>
</dependency>

提前致谢:)

【问题讨论】:

  • Hibernate 特有的会话/事务的废话是怎么回事? JPA 完成了所有这些工作。 NoClassDefFound 意味着您要么没有该班级或其家属之一。记住“hibernate-annotations”已经很多年没有发布了,也许你根本不需要它。我相信 Hibernate 文档应该会告诉你

标签: hibernate jpa jakarta-ee


【解决方案1】:
  1. 混合使用 JPA 方法(使用 EntityMananger)和 Hibernate Session 方法。
  2. 您使用 Hibernate 3 库 (3.5.6-Final) 和 Hibernate 5 hibernate-entitymanager (5.0.6.Final)。

您可以开始使用

Hibernate Getting Started Guide

【讨论】:

    猜你喜欢
    • 2016-03-05
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 2013-02-11
    • 2013-10-18
    • 2012-04-08
    • 2015-10-28
    相关资源
    最近更新 更多