You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hibernate Envers 6.4.1静态元模型字段注入非法参数问题求助

解决Spring Boot 3.2.1 + Hibernate Envers 6.4.1的HHH015007错误

问题详情

迁移应用至Spring Boot 3.2.1 + Hibernate Envers 6.4.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文档示例代码、官方示例项目及Hibernate测试用例复现,且已提交至Hibernate官方Issue追踪。

临时解决办法

  • 降级Hibernate Envers版本:暂时回退到Hibernate Envers 6.4.0或Spring Boot 3.2.x默认兼容的更早稳定版本,规避该元模型注入bug。
  • 自定义Revision实体:不使用默认的DefaultRevisionEntity,自行创建继承RevisionEntity的自定义类,确保静态元模型生成时类型匹配。示例代码:
    import org.hibernate.envers.RevisionEntity;
    import org.hibernate.envers.RevisionNumber;
    import org.hibernate.envers.RevisionTimestamp;
    import jakarta.persistence.Entity;
    import jakarta.persistence.GeneratedValue;
    import jakarta.persistence.Id;
    
    @Entity
    @RevisionEntity
    public class CustomRevisionEntity {
        @Id
        @GeneratedValue
        @RevisionNumber
        private int id;
    
        @RevisionTimestamp
        private long timestamp;
    
        // 构造器、getter/setter方法
    }
    
  • 禁用静态元模型生成(谨慎操作):若项目未依赖JPA静态元模型功能,可通过配置hibernate.metamodel.generation.enabled=false关闭元模型生成,绕过该错误。

后续处理

等待Hibernate官方发布修复版本,届时升级至对应版本即可彻底解决问题。

内容的提问来源于stack exchange,提问作者zedoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 21:54:55