hibernate - java.lang.NoClassDefFoundError : org/hibernate/boot/registry/classloading/spi/ClassLoaderService 错误

标签 hibernate jpa jakarta-ee

我是 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>

这是我的 hibernate 依赖

<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>

提前致谢:)

最佳答案

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

你可以开始使用

Hibernate Getting Started Guide

关于hibernate - java.lang.NoClassDefFoundError : org/hibernate/boot/registry/classloading/spi/ClassLoaderService 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36431154/

相关文章:

java - 最常用标签的 NamedQuery

java - 2.0.9 和 2.1.0 之间的 Spring Boot eclipselink ddl 自动生成问题

java - 将文件保存到 Jersey API 中的服务器应用程序目录

java - GlassFish 服务器 core.jar 不包含在已安装的 bundle 列表中

java - Hibernate自动删除多对多关系

java - Spring Boot 下拉菜单

java - 在 Hibernate 中映射列,而无需 Java 类中的属性

java - 如何在JPQL中随机选择10条记录?

jakarta-ee - 访问服务器上的SSL证书(私钥)

java - 由于 org.hibernate.internal.SessionFactoryImpl 可能导致内存泄漏