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

Netflix DGS使用ExtendedScalars时BigDecimal未自动导入如何解决?

问题原因
  • 你当前使用的graphql-dgs-codegen-client-core:5.0.6版本未内置GraphQLBigDecimal标量对应的类型导入规则。Date、Long、LocalDate等类型要么属于java.lang包(无需显式导入),要么已被纳入该版本Codegen的默认导入规则,而BigDecimal属于java.math包,没有默认的自动导入配置,因此生成代码时不会自动添加import java.math.BigDecimal语句。
  • 你在代码中添加的是运行时标量注册配置,和代码生成阶段完全独立,运行时的标量声明不会影响Codegen的导入逻辑,所以即便你运行时已经注册了GraphQLBigDecimal,代码生成阶段也不会自动识别并添加对应导入。
解决方案

方案1:升级DGS Codegen版本

5.1.0及以上版本的DGS Codegen已经官方修复了该问题,内置了GraphQLBigDecimal到java.math.BigDecimal的映射和自动导入规则,直接将graphql-dgs-codegen-client-core版本升级到5.1.0及以上即可解决。

方案2:手动添加Codegen配置(不升级版本时使用)

如果当前环境不允许升级依赖,直接在项目的Gradle构建配置中添加Codegen的自定义类型映射和导入规则即可:

dgsCodegen {
    // 配置标量到Java全限定类名的映射
    typeMapping = [
        BigDecimal: "java.math.BigDecimal"
    ]
    // 配置生成代码时自动导入的类
    includeImports = ["java.math.BigDecimal"]
}

配置完成后重新执行代码生成任务,生成的类就会自动带上BigDecimal的导入语句,报错会消失。

内容的提问来源于stack exchange,提问作者Bo Hun Kim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:06:02