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

升级Hibernate至6.2.7后遇CDI依赖缺失错误求助

解决CDI依赖缺失问题

问题根源

你的MapStruct映射器使用了componentModel = MappingConstants.ComponentModel.CDI,但项目依赖中未引入CDI相关库,同时项目已引入Spring Context,更适配Spring组件模型。

解决方案

方案1:改用Spring组件模型(推荐)

修改映射器的@Mapper注解,将组件模型切换为Spring:

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE, componentModel = MappingConstants.ComponentModel.SPRING)
public interface UserAdminUsersEntityMapper {
    // 原有代码保持不变
}

这样MapStruct会生成Spring的@Component类,直接与现有Spring环境兼容,无需额外添加依赖。

方案2:添加CDI依赖(若必须使用CDI)

如果确实需要使用CDI组件模型,在build.gradle的dependencies块中添加Jakarta CDI API依赖:

implementation 'jakarta.enterprise:jakarta.enterprise.cdi-api:4.0.1'

Hibernate 6.x基于Jakarta EE规范,需使用Jakarta命名空间的CDI依赖,而非旧的javax版本。

额外优化建议

  • 移除dependencies中重复声明的MapStruct依赖:
    // 删除重复的该行配置
    // implementation 'org.mapstruct:mapstruct:1.5.5.Final'
    
  • 移除jar块中手动指定的Class-Path属性,Gradle会自动管理依赖路径,手动指定易出现版本不一致问题(当前Class-Path中的hibernate-core版本为5.4.11.Final,与实际使用的6.2.7.Final冲突)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:58:14