0

我将以下类型和枚举添加到我的 schema.graphql

enum Currency {
    USD
    EUR
    GBP
    AUD
    CAD
    ILS
    HKD
    SEK
    NZD
    SGD
    CHF
    ZAR
    BRL
    CNY
    INR
    MYR
    MXN
    PKR
    PHP
    TWD
    THB
    TRY
    AED
}

type Money {
    amount: Int!
    currency: Currency!
}

然后运行 ​​generateJava。结果如下

package com.fiverr.apps.financial_analytics_kimera.generated.graphql.types

import com.fasterxml.jackson.`annotation`.JsonProperty
import java.util.Currency
import kotlin.Int

public data class Money(
  @JsonProperty("amount")
  public val amount: Int,
  @JsonProperty("currency")
  public val currency: Currency
) {
  public companion object
}

所以基本上这里有一个不必要的import java.util.currency东西破坏了我的代码,因为我希望我的代码使用枚举货币而不是 java.util.currency

我该怎么做才能删除 make generateJava not import Currency from utils?谢谢

4

1 回答 1

0

显然在 Netflix DGS 插件中,我可以为 Scalars 配置类型表示

示例来自build.gradle.kts

val string = String::class.qualifiedName!!
val long = Long::class.qualifiedName!!
val double = Double::class.qualifiedName!!
tasks.withType<GenerateJavaTask> {
    packageName = "com.fiverr.apps.sellers_phoenix.graphql.generated"
    typeMapping = mutableMapOf(
        "MoneyAmount" to double,
        "Timestamp" to long,
        "URI" to string,
        "BigInt" to long,
        "PageInfo" to "com.fiverr.apps.sellers_phoenix.api.graphql.model.PageInfo"
    )
    generateClient = true
}
于 2022-02-02T11:25:52.090 回答