Hibernate Envers 6.4.1:静态元模型字段注入的非法参数

问题描述 投票:0回答:2

我迁移到 Hibernate 6.4.1(通过 Spring Boot 3.2.1),我的应用程序记录了一个以前不存在的错误:

2024-01-03T15:49:10.361+01:00 ERROR 81857 --- [           main] 
o.h.metamodel.internal.MetadataContext   : 
HHH015007: Illegal argument on static metamodel field injection : 
org.hibernate.envers.DefaultRevisionEntity_#class_; expected type :  
org.hibernate.metamodel.model.domain.internal.EntityTypeImpl; encountered type : 
jakarta.persistence.metamodel.MappedSuperclassType

我可以通过一个最小的示例来重现这一点,基本上是从 spring data envers 文档中复制代码: https://docs.spring.io/spring-data/jpa/reference/envers/configuration.html

我还可以通过运行 spring-data-envers 示例来重现这一点: https://github.com/spring-projects/spring-data-examples/blob/main/jpa/envers/pom.xml

我也可以通过运行来重现此问题 https://github.com/hibernate/hibernate-orm/blob/main/hibernate-envers/src/test/java/org/hibernate/orm/test/envers/DefaultAuditTest.java

创建问题 https://hibernate.atlassian.net/jira/software/c/projects/HHH/boards/31?selectedIssue=HHH-17612

hibernate-envers spring-data-envers
2个回答
0
投票

在我的例子中,使用 hibernate envers 的

@Audited
注释导致了错误。我通过删除依赖项
implementation "org.hibernate:hibernate-envers"
并添加
implementation "org.hibernate:hibernate-envers-jakarta:5.6.15.Final"
解决了该错误。


0
投票

我也有同样的问题,一开始我很生气,但是仔细看看代码,这似乎曾经是一个硬失败,但现在它只记录为错误——一旦我意识到这一点,我我有点祈祷并希望一切都能顺利。虽然如果错误消失肯定会让我感觉更好,但到目前为止它还没有影响我的代码的行为。

© www.soinside.com 2019 - 2024. All rights reserved.