【问题标题】:Hibernate problem with connect data base - java.lang.NoClassDefFoundError: net/bytebuddy/NamingStrategy$SuffixingRandom$BaseNameResolver连接数据库的休眠问题 - java.lang.NoClassDefFoundError: net/bytebuddy/NamingStrategy$SuffixingRandom$BaseNameResolver
【发布时间】:2020-04-11 09:09:21
【问题描述】:

我在连接数据库时遇到问题,休眠显示错误:

java.lang.NoClassDefFoundError: net/bytebuddy/NamingStrategy$SuffixingRandom$BaseNameResolver

我的测试类很简单:

public class Main {

public static void main(String[] args) {
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tutorialdb");
EntityManager entityManager = entityManagerFactory.createEntityManager();

entityManager.close();
entityManagerFactory.close();
}

}

在我的项目中存在文件byte-buddy-1.10.2.jar,问题出在哪里?

【问题讨论】:

  • 你确定它在你的类路径中吗?检查以确保您的 IDE/构建系统已将 .jar 注册为库并再次构建。
  • 好的,这对我来说很好,我已经看到我在模块路径中创建了休眠库,模块路径和类路径有什么区别?
  • 模块路径是编译器查找模块的位置,类路径是编译器在这些模块中查找类的位置。如果您没有模块化程序,则无需担心模块路径,但在这两种情况下,您都需要确保库位于类路径中。

标签: java hibernate jdbc mssql-jdbc


【解决方案1】:

仅适用于maven项目

尝试从路径 /.m2/net/bytebuddy 中删除 jar 文件。尝试再次构建 maven 项目。(可能是下载的 jar 已损坏)

如果是独立项目,请在类路径中添加 jar。

希望对你有用

【讨论】:

    【解决方案2】:

    对于模块化Java项目,只需添加

    • 模块信息.java

      需要 net.bytebuddy;

    • build.gradle(如果使用)

      runtimeOnly 'net.bytebuddy:byte-buddy:1.12.1'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      相关资源
      最近更新 更多