gpt4 book ai didi

java - 在 Java 9 应用程序中使用 hibernate 生成 ORM

转载 作者:搜寻专家 更新时间:2023-11-01 03:46:48 25 4
gpt4 key购买 nike

我正在尝试使用 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>

最佳答案

如果你的类路径上有一个类型试图访问 jdk.internal.loader.URLClassPath,那么异常似乎是合理的,它在 JDK 中用作内部类并专门导出到仅限 java.desktopjava.instrumentjava.logging

关于 the unnamed module 的更多信息:-

The unnamed module reads every other module. Code in any type loaded from the class path will thus be able to access the exported types of all other readable modules, which by default will include all of the named, built-in platform modules.

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

--add-opens java.base/jdk.internal.loader=ALL-UNNAMED

这将通过在 java.base 模块中向所有未命名模块打开包 jdk.internal.loader 来增加可读性优势。

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

关于java - 在 Java 9 应用程序中使用 hibernate 生成 ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48007242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com