【发布时间】:2021-03-18 03:32:44
【问题描述】:
我尝试在 Java 8 中将 Hibernate 6.0 与 Postgres 一起使用,但出现此错误:Could not access Unsafe class: sun.misc.Unsafe 我该如何解决?
org.hibernate.MappingException: Could not instantiate persister
Caused by: java.lang.IllegalArgumentException: Could not create type
at net.bytebuddy/net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:154)
at net.bytebuddy/net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:365)
at net.bytebuddy/net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:174)
at net.bytebuddy/net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:376)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.bytecode.internal.bytebuddy.ByteBuddyState.load(ByteBuddyState.java:175)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.bytecode.internal.bytebuddy.ByteBuddyState.loadProxy(ByteBuddyState.java:99)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.proxy.pojo.bytebuddy.ByteBuddyProxyHelper.buildProxy(ByteBuddyProxyHelper.java:56)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.proxy.pojo.bytebuddy.ByteBuddyProxyFactory.postInstantiate(ByteBuddyProxyFactory.java:61)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.metamodel.internal.StandardPojoEntityRepresentationStrategy.createProxyFactory(StandardPojoEntityRepresentationStrategy.java:225)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.metamodel.internal.StandardPojoEntityRepresentationStrategy.<init>(StandardPojoEntityRepresentationStrategy.java:120)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.metamodel.internal.StandardManagedTypeRepresentationResolver.resolveStrategy(StandardManagedTypeRepresentationResolver.java:54)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:695)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:141)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:97)
... 10 more
Caused by: java.lang.UnsupportedOperationException: Could not access Unsafe class: sun.misc.Unsafe
at net.bytebuddy/net.bytebuddy.dynamic.loading.ClassInjector$UsingUnsafe$Dispatcher$Unavailable.initialize(ClassInjector.java:2006)
at net.bytebuddy/net.bytebuddy.dynamic.loading.ClassInjector$UsingUnsafe.injectRaw(ClassInjector.java:1738)
at net.bytebuddy/net.bytebuddy.dynamic.loading.ClassInjector$AbstractBase.inject(ClassInjector.java:110)
at net.bytebuddy/net.bytebuddy.dynamic.loading.ClassLoadingStrategy$ForUnsafeInjection.load(ClassLoadingStrategy.java:567)
at net.bytebuddy/net.bytebuddy.dynamic.TypeResolutionStrategy$Passive.initialize(TypeResolutionStrategy.java:100)
at net.bytebuddy/net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:6156)
at org.hibernate.orm.core@6.0.0.Alpha6/org.hibernate.bytecode.internal.bytebuddy.ByteBuddyState.lambda$load$0(ByteBuddyState.java:179)
at net.bytebuddy/net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:152)
... ```
【问题讨论】:
-
你为什么用6.0?它仍在开发中。可以使用最新的稳定版 5.4 - hibernate.org/orm/releases 吗?
-
我在 5.4 中遇到了同样的错误。我也使用 byte-buddy-1.8.12.jar 而不是 byte-buddy-1.10.10.jar
-
嗯...你能分享一下 pom 文件,或者如果可能的话,可以分享一个演示应用程序以进行故障排除。
-
我没有使用 pom 文件。这是 module-info.java 文件:
module WordTest { requires java.desktop; requires java.base; requires java.persistence; //для Hibernate requires java.sql; requires java.xml.bind; requires java.activation; requires com.sun.xml.bind; requires org.glassfish.jaxb.core; requires net.bytebuddy; requires org.hibernate.orm.core; //Для MS Office requires poi.ooxml.schemas; requires poi.ooxml; requires xmlbeans; requires com.fasterxml.classmate; exports MainPack to org.hibernate.orm.core; } -
这绝对不是您声称的那样使用 java 8。堆栈跟踪中有模块名称。
标签: java postgresql eclipse hibernate orm