gpt4 book ai didi

java - Quarkus + Hibernate ORM 抛出EnhancementException : Failed to enhance class

转载 作者:行者123 更新时间:2023-12-02 09:15:24 27 4
gpt4 key购买 nike

我们希望对 Quarkus 应用程序中的一些实体使用 @MappedSuperclass

当我们在父类中添加私有(private)字段时,我们会得到以下异常(我用占位符替换了字段和类名)。

如果我们将字段声明公开,这个问题就可以解决。这是我们可以接受的,但我想知道是否有某种方法可以保持该字段私有(private),同时仍然使用 Quarkus 带来的 Hibernate 增强过程?

Caused by: java.lang.IllegalStateException: Cannot access private <fieldType> <fieldName> from class <className>
at net.bytebuddy.asm.Advice$OffsetMapping$ForField$Resolved.resolve(Advice.java:2346)
at net.bytebuddy.asm.Advice$OffsetMapping$ForField.resolve(Advice.java:2121)
at net.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$ForMethodEnter.doApply(Advice.java:7715)
at net.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$ForMethodEnter.apply(Advice.java:7676)
at net.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$AdviceMethodInliner.visitMethod(Advice.java:7385)
at net.bytebuddy.jar.asm.ClassReader.readMethod(ClassReader.java:1123)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:688)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:400)
at net.bytebuddy.asm.Advice$Dispatcher$Inlining$Resolved$AdviceMethodInliner.apply(Advice.java:7379)
at net.bytebuddy.asm.Advice$AdviceVisitor.onAfterExceptionTable(Advice.java:9427)
at net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.considerEndOfExceptionTable(ExceptionTableSensitiveMethodVisitor.java:49)
at net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor.visitVarInsn(ExceptionTableSensitiveMethodVisitor.java:94)
at org.hibernate.bytecode.enhance.internal.bytebuddy.InlineDirtyCheckingHandler.apply(InlineDirtyCheckingHandler.java:93)
at net.bytebuddy.implementation.bytecode.ByteCodeAppender$Compound.apply(ByteCodeAppender.java:151)
at net.bytebuddy.asm.Advice$Appender$EmulatingMethodVisitor.resolve(Advice.java:10031)
at net.bytebuddy.asm.Advice$Appender.apply(Advice.java:9984)
at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyCode(TypeWriter.java:713)
at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyBody(TypeWriter.java:698)
at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod.apply(TypeWriter.java:605)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForInlining$WithFullProcessing$RedefinitionClassVisitor.onVisitEnd(TypeWriter.java:4539)
at net.bytebuddy.utility.visitor.MetadataAwareClassVisitor.visitEnd(MetadataAwareClassVisitor.java:271)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:692)
at net.bytebuddy.jar.asm.ClassReader.accept(ClassReader.java:400)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForInlining.create(TypeWriter.java:3397)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:1933)
at net.bytebuddy.dynamic.scaffold.inline.RedefinitionDynamicTypeBuilder.make(RedefinitionDynamicTypeBuilder.java:217)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3397)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$Delegator.make(DynamicType.java:3614)
at org.hibernate.bytecode.internal.bytebuddy.ByteBuddyState.make(ByteBuddyState.java:193)
at org.hibernate.bytecode.internal.bytebuddy.ByteBuddyState.rewrite(ByteBuddyState.java:146)
at org.hibernate.bytecode.enhance.internal.bytebuddy.EnhancerImpl.enhance(EnhancerImpl.java:132)

最佳答案

我认为这是一个错误,我为此创建了一个问题:https://hibernate.atlassian.net/browse/HHH-13759

更新2:错误已解决

更新 1:经过进一步检查,将注释移动到 getter 实际上不起作用。目前最好将该字段公开。

关于java - Quarkus + Hibernate ORM 抛出EnhancementException : Failed to enhance class <classname>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59032839/

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