我正在使用https://github.com/graphql-java-kickstart/graphql-spring-boot 在一个spring boot项目上。我需要在子字段上进行过滤。例如:
query{
userByEmail(email:"xxxx@info.com"){
firstName
lastName
roles(take: 2){
name
}
}
}
这是我的密码:
架构
type User{
id: ID!
firstName: String
lastName: String
email: String
roles: [Role!]
birthDate: Date
}
type Query {
userByEmail(email:String): User
}
查询解析器
@Component
@RequiredArgsConstructor
public class UserQueryResolver implements GraphQLQueryResolver {
private final IUserRepository userRepository;
public User userByEmail(String email) {
return userRepository.findByEmail(email).orElse(null);
}
}
分解器
@Component
@RequiredArgsConstructor
@Slf4j
public class UserResolver implements GraphQLResolver<User> {
public CompletableFuture<List<Role>> roles(User user, DataFetchingEnvironment dfe) {
final DataLoader<Long, List<Role>> dataloader = dfe.getDataLoaderRegistry().getDataLoader("userRoleDataLoader");
return dataloader.load(user.getId(), user);
}
}
在我的应用程序上一切都很好,但我不能在子字段上集成过滤。当我在模式上设置用户类型时,例如:
type User{
id: ID!
firstName: String
lastName: String
email: String
roles(take: Int): [Role!]
birthDate: Date
}
datafetchingenvironment dfe将为空。如何对子字段进行过滤?
暂无答案!
目前还没有任何答案,快来回答吧!