如何处理.graphqls中的查询解析器的List <Map <String,Object >>返回类型

时间:2019-09-11 09:30:56

标签: spring-boot jpa graphql

我有一个graphql实现,下面是我的.graphqls文件

   schema { 
   query: Query

   } 

   type Product { 
    id: Int! 
    name: String! 
    description: String!
    productTypes: [ProductType]!
  } 

  type City { 
    id: Int! 
    name: String!
  }

  type ProductType { 
    id: Int! 
    type: String!
    product: Int
  }

  type Query {
    products: [Product]!
    cities: [City]!
    productTypes: [ProductType]!
  }

这是我的查询解析器代码

   public class Query implements GraphQLQueryResolver {


      @Autowired
      ProductRespository productRespository;

      @Autowired
      EntityManager em;

      @Autowired
      CityRepository cityRepository;

      @Autowired
      ProductTypeRepository productTypeRepository;



      public List<Map<String, Object>> products() {
           javax.persistence.Query q = em.createQuery("select new 
           map(p.name as productName, p.id as productId) from Product p");
           List<Map<String, Object>> list = q.getResultList();
           return list;


      }

     public Iterable<City> cities() {
         return cityRepository.findAll();
     }
}

当我运行应用程序时,我遇到错误

类型java.util.Map不能为  映射到GraphQL类型!由于GraphQL-Java在  运行时,只有非参数化的类才能表示GraphQL类型。
 这允许接口和联合中的java类进行反向查找  类型

所以我该如何处理.graphqls的查询部分中的这种返回类型

预先感谢

0 个答案:

没有答案