You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Java、Gradle搭配Hibernate连接数据库找不到Referenceable类如何解决

问题原因

你当前使用的是Java 9及以上版本的模块化项目(存在module-info.java配置文件),报错提示中缺失的javax.naming.Referenceable类属于JDK内置的java.naming模块,你没有在模块声明中引入该模块,导致编译阶段无法加载对应类。

解决方案

有两种可选方案,按需选择即可:

  • 方案1:保留模块化配置,补充缺失的模块依赖
    修改你的module-info.java,添加java.naming的依赖声明,同时需要开放你的实体类所在包给Hibernate,否则Hibernate无法通过反射访问实体类属性:
module PhoneBook {
    requires javafx.controls;
    requires javafx.fxml;
    requires javafx.graphics;
    requires org.hibernate.orm.core;
    // 新增:引入JDK内置的naming模块
    requires java.naming;
    // 新增:将实体类所在包开放给Hibernate,示例包名请替换为实际的实体类存放路径
    opens 你的实体类包路径 to org.hibernate.orm.core;

    exports app;
}
  • 方案2:不使用模块化,直接删除module-info.java
    如果你的项目不需要用到Java模块化特性,可以直接删掉module-info.java文件,项目会自动运行在无名模块下,无需额外声明模块依赖即可正常编译运行。

内容的提问来源于stack exchange,提问作者user17142684

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:27:03