【发布时间】:2021-09-04 13:25:52
【问题描述】:
这是我的 GraphQL Schema 中的相关位:
type pojo {
details: detailspojo,
name: String,
method: String,
ext_Path: String,
int_Path: String,
mle: String
}
type detailspojo{
address
}
我的用例要求我从数据库查询中获取除 detailspojo 和从 HTTP 请求中获取 detailspojo 之外的所有详细信息。
我构建了一个实现GraphQLQueryResolver 的类,其中所有字段都从数据库中查询。我在下面构建了实现GraphQLResolver<pojo> 的类,其中pojo 是我的pojo 架构的DTO。
@Component
public class detailsresolver implements GraphQLResolver<pojo> {
public detailspojo getOperationalSummary(Pojo pojo) {
// Here I will be making HTTP request to get data.
return null;
}
}
我已经制作了所有合适的 POJO。我已经看过所有与GraphQLResolver<T> 相关的教程,而且我似乎已经完成了所有工作。我仍然收到此错误:
Caused by: graphql.kickstart.tools.SchemaClassScannerError: Error creating bimap of type => class
at graphql.kickstart.tools.SchemaClassScanner.validateAndCreateResult(SchemaClassScanner.kt:157) ~[graphql-java-tools-11.0.1.jar:na]
at graphql.kickstart.tools.SchemaClassScanner.scanForClasses(SchemaClassScanner.kt:104) ~[graphql-java-tools-11.0.1.jar:na]
at graphql.kickstart.tools.SchemaParserBuilder.scan(SchemaParserBuilder.kt:154) ~[graphql-java-tools-11.0.1.jar:na]
at graphql.kickstart.tools.SchemaParserBuilder.build(SchemaParserBuilder.kt:195) ~[graphql-java-tools-11.0.1.jar:na]
at graphql.kickstart.tools.boot.GraphQLJavaToolsAutoConfiguration.schemaParser(GraphQLJavaToolsAutoConfiguration.java:125) ~[graphql-kickstart-spring-boot-autoconfigure-tools-11.1.0.jar:na]
at graphql.kickstart.tools.boot.GraphQLJavaToolsAutoConfiguration$$EnhancerBySpringCGLIB$$a945e683.CGLIB$schemaParser$4(<generated>) ~[graphql-kickstart-spring-boot-autoconfigure-tools-11.1.0.jar:na]
at graphql.kickstart.tools.boot.GraphQLJavaToolsAutoConfiguration$$EnhancerBySpringCGLIB$$a945e683$$FastClassBySpringCGLIB$$ab7f3bb9.invoke(<generated>) ~[graphql-kickstart-spring-boot-autoconfigure-tools-11.1.0.jar:na]
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at graphql.kickstart.tools.boot.GraphQLJavaToolsAutoConfiguration$$EnhancerBySpringCGLIB$$a945e683.schemaParser(<generated>) ~[graphql-kickstart-spring-boot-autoconfigure-tools-11.1.0.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_291]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_291]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_291]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_291]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
... 144 common frames omitted
Caused by: java.lang.IllegalArgumentException: value already present: class com.example.project.Pojo
请让我知道该怎么做,如果有帮助,我愿意添加更多信息。谢谢!
编辑 1:我正在使用以下 Maven 包:
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphql-spring-boot-starter</artifactId>
<version>11.1.0</version>
</dependency>
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>playground-spring-boot-starter</artifactId>
<version>7.1.0</version>
</dependency>
【问题讨论】: