Java 9应用程序中用hibernate生成ORM

Java 9应用程序中用hibernate生成ORM,java,hibernate,java-9,Java,Hibernate,Java 9,我正在尝试使用hibernate生成ORM 我正在使用oracle 11g数据库 在进行hibernate代码生成配置之后,我遇到了这个错误 java.lang.reflect.InaccessibleObjectException: Unable to make field java.util.ArrayList jdk.internal.loader.URLClassPath.loaders accessible: module java.base does not "opens jdk.i

我正在尝试使用hibernate生成ORM 我正在使用oracle 11g数据库 在进行hibernate代码生成配置之后,我遇到了这个错误

java.lang.reflect.InaccessibleObjectException: Unable to make field java.util.ArrayList jdk.internal.loader.URLClassPath.loaders accessible: module java.base does not "opens jdk.internal.loader" to unnamed module @6a75c1c8
Unable to make field java.util.ArrayList jdk.internal.loader.URLClassPath.loaders accessible: module java.base does not "opens jdk.internal.loader" to unnamed module @6a75c1c8
java.lang.reflect.InaccessibleObjectException: Unable to make field java.util.ArrayList jdk.internal.loader.URLClassPath.loaders accessible: module java.base does not "opens jdk.internal.loader" to unnamed module @6a75c1c8
Unable to make field java.util.ArrayList jdk.internal.loader.URLClassPath.loaders accessible: module java.base does not "opens jdk.internal.loader" to unnamed module @6a75c1c8
这是我的Hibernate.cfg.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.password">compte</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
        <property name="hibernate.connection.username">compte</property>
        <property name="hibernate.default_schema">COMPTE</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
    </session-factory>
</hibernate-configuration>

oracle.jdbc.driver.OracleDriver
康普特
jdbc:oracle:thin:@localhost:1521:orcl
康普特
康普特
org.hibernate.dialen.oracle10galent

如果类路径上有一个类型试图访问
jdk.internal.loader.urlclaspath
,该类型在jdk中用作内部类,并专门导出到
java.desktop
java.instrument
java.logging
,则异常似乎是合理的

更多关于:-

未命名模块每隔一个模块读取一次。加载任何类型的代码 因此,从类路径将能够访问导出的 所有其他可读模块,默认情况下将包括所有 命名的内置平台模块

访问包(类所在的包)的另一种方法是使用VM args::

--add-opens java.base/jdk.internal.loader=ALL-UNNAMED
这将通过打开
java.base
模块中的包
jdk.internal.loader
来为所有未命名的模块添加可读性优势


但理想情况下,应该提出/达成一个解决方案,避免打开内部包来访问这样的类,当您查看此错误的来源时,该类会更清楚。

是否可以使用您正在使用的hibernate版本更新此问题(兼容性检查)以及导致上述错误的完整堆栈跟踪/步骤?当我尝试使用jdk 1.7时,我得到了以下错误:org.hibernate.console.HibernateConsoleRuntimeException:无法计算类路径无法计算类路径我无法理解this@RiadhAzzouz
URLClassPath
是一个JDK内部类,不公开供JDK外部访问答案中列出的模块和包。因此,为了需要它,您可能希望在类路径上向未命名的模块打开该模块。或者,根据您使用的功能,寻找替代方案。