我在我的项目中使用Spring和graphql-java(graphql-java-annotation).为了检索数据部分,我使用DataFetcher从服务(从数据库)获取数据.
奇怪的是:myService始终为空.谁知道原因?
DataFetcher
@Component
public class MyDataFetcher implements DataFetcher {
// get data from database
@Autowired
private MyService myService;
@Override
public Object get(DataFetchingEnvironment environment) {
return myService.getData();
}
}
Run Code Online (Sandbox Code Playgroud)
架构
@Component
@GraphQLName("Query")
public class MyGraphSchema {
@GraphQLField
@GraphQLDataFetcher(MyDataFetcher.class)
public Data getData() {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
为MyService
@Service
public class MyService {
@Autowired
private MyRepository myRepo;
@Transactional(readOnly = true)
public Data getData() {
return myRepo.getData();
}
}
Run Code Online (Sandbox Code Playgroud)
主要测试
@Bean
public String testGraphql(){ …Run Code Online (Sandbox Code Playgroud) 是否可以动态创建GraphQL架构?
我们将数据存储在mongoDB中,并且可能会添加新字段.我们不希望在mongoDB文档中对此新添加的字段进行任何代码更改.
我们有什么方法可以动态生成架构吗?
模式在代码中定义,但对于java(模式为pojo),添加新属性时,必须更新并重新编译代码,然后再次存档和部署jar.有什么方法可以通过数据生成模式而不是预先定义它?
目前我们正在使用java相关项目(graphql-java,graphql-java-annotations)进行GraphQL开发.