如何在Graphql java中实现自定义标量?

如何在Graphql java中实现自定义标量?,graphql,Graphql,我是graphql新手。我正在尝试实现自定义标量类型“Email”。但我的错误率越来越低。你能帮帮我吗 收件人:com.coxautodev.graphql.tools.SchemaClassScannerError:应为 名为“Email”的用户定义GraphQL标量类型,但未找到!在 com.coxautodev.graphql.tools.SchemaClassScanner.validateAndCreateResult(SchemaClassScanner.kt:144) ~[grap

我是graphql新手。我正在尝试实现自定义标量类型“Email”。但我的错误率越来越低。你能帮帮我吗

收件人:com.coxautodev.graphql.tools.SchemaClassScannerError:应为 名为“Email”的用户定义GraphQL标量类型,但未找到!在 com.coxautodev.graphql.tools.SchemaClassScanner.validateAndCreateResult(SchemaClassScanner.kt:144) ~[graphql-java-tools-4.3.0.jar:na]at com.coxautodev.graphql.tools.SchemaClassScanner.scanForClasses(SchemaClassScanner.kt:94) ~[graphql-java-tools-4.3.0.jar:na]

配置:

scalar Email

type Greeting {
  id: ID!
  message: String!
  email:Email
}

type Query {
  getGreeting(id: ID!): Greeting
}

type Mutation {
  newGreeting(message: String!): Greeting!
}
版本信息:

springBootVersion = '1.5.8.RELEASE'

com.graphql-java:graphql-java:6.0')

com.graphql-java:graphql-java-tools:4.3.0')

com.graphql-java:graphql-java-servlet:4.7.0')

org.springframework.boot:spring-boot-starter-web')

com.graphql-java:graphql-spring-boot-starter:3.10.0')

com.graphql-java:graphiql-spring-boot-starter:3.10.0')      
请帮助…

尝试以下操作:

@Component
public class ScalarEMail extends GraphQLScalarType {
    public ScalarEMail() {
        super("Email", "Scalar Email", new Coercing() {
            @Override
            public Object serialize(Object o) throws CoercingSerializeException {
                return ((Email) o).getEmail();
            }

            @Override
            public Object parseValue(Object o) throws CoercingParseValueException {
                return serialize(o);
            }

            @Override
            public Object parseLiteral(Object o) throws CoercingParseLiteralException {
                return Email.valueOf(((StringValue) o).getValue());
            }
        });
    }
}

您必须使用解析函数定义
电子邮件
标量类型。我们使用的是模式优先的方法,而不是代码优先的方法。