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

搭建JavaFX-Hibernate-Hibernate Search测试应用遇权限错误求助

修复 "This library does not have private access to interface org.hibernate.internal.CoreMessageLogger" 错误

你的问题核心是Hibernate Search与Hibernate ORM版本不兼容,加上模块配置缺失必要权限导致的,以下是具体修复步骤:

1. 调整依赖版本,确保兼容性

Hibernate Search 7.2.3.Final 对应的兼容Hibernate ORM版本是 6.4.x,你当前用的6.6.11.Final版本过高,会引发内部API访问冲突。修改pom.xml:

<!-- 移除单独的hibernate-core依赖,由hibernate-search-mapper-orm自动引入兼容版本 -->
<dependency>
    <groupId>org.hibernate.search</groupId>
    <artifactId>hibernate-search-backend-lucene</artifactId>
    <version>7.2.3.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate.search</groupId>
    <artifactId>hibernate-search-mapper-orm</artifactId>
    <version>7.2.3.Final</version>
</dependency>
<!-- 移除手动添加的jboss-logging,让依赖管理自动引入适配版本 -->

如果需要显式指定Hibernate ORM版本,添加以下依赖(确保版本为6.4.x,比如6.4.4.Final):

<dependency>
    <groupId>org.hibernate.orm</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>6.4.4.Final</version>
</dependency>

2. 完善模块配置(module-info.java)

Hibernate Search需要访问实体类的内部字段,同时需要模块声明依赖Search的ORM映射器模块:

module com.example.hibernate {
    requires javafx.controls;
    requires javafx.fxml;
    requires java.naming;
    requires jakarta.persistence;
    requires org.hibernate.orm.core;
    // 新增:声明依赖Hibernate Search的ORM映射器模块
    requires org.hibernate.search.mapper.orm;
    requires org.hibernate.search.mapper.pojo;

    opens com.example.hibernate to javafx.fxml;
    exports com.example.hibernate;
    exports com.example.hibernate.model;
    exports com.example.hibernate.service;
    exports com.example.hibernate.util;
    // 新增:让Hibernate Search能反射访问实体类
    opens com.example.hibernate.model to org.hibernate.orm.core, org.hibernate.search.mapper.orm;
    opens com.example.hibernate.service to javafx.fxml;
}

3. 验证配置一致性

确保hibernate.cfg.xml中的Search配置正确,你的当前配置没问题,但可以补充必要的后端类型配置(可选,默认是lucene):

<property name="hibernate.search.backend.type">lucene</property>
<property name="hibernate.search.backend.directory.root">./index</property>

完成以上调整后,重新编译运行应用,错误应该会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 06:37:05