【问题标题】:List<Object> from 2 unrelated objects only show one object as result来自 2 个不相关对象的 List<Object> 仅显示一个对象作为结果
【发布时间】:2021-05-21 04:59:50
【问题描述】:

我想使用以下原生查询在 Postman 中显示来自 2 个不相关对象的结果:

    @Query(value = "select * from product p where p.id like concat('%', :productId, '%') ", nativeQuery = true)
    List<Product> findProductById(String productId);

    @Query(value = "select * from customer c where c.id like concat('%',:id,'%')", nativeQuery = true)
    List<Customer> findCustomerById(String id);

我想用条件添加他们的结果:

  • 如果productId为空,我只想显示 List&lt;Customer&gt;的结果,反之亦然
  • 如果两者都为空/不为空,则应显示查询、产品和客户的结果,如下所示:
    @Override
    public List<Object> findById(String customerId, String productId) {
        List<Object> obj = new ArrayList<>();
        if(customerId.isEmpty()){
            obj.addAll(productRepository.findProductById(productId));
        } else if(productId.isEmpty()){
            obj.addAll(customerRepository.findCustomerById(customerId));
        } else {
            obj.addAll(productRepository.findProductById(productId));
            obj.addAll(customerRepository.findCustomerById(customerId));
        }
        return obj;
    }

这是我的控制器:

    @GetMapping("/custom")
    public List<Object> findById(@RequestParam(name = "customer") String customer, @RequestParam(name = "product") String product){
        return service.findById(customer, product);
    }

但是,在 Postman 中,当两者都为空时,它们仅显示来自 List&lt;Product&gt; 的结果。有什么办法可以同时显示吗?

【问题讨论】:

    标签: java spring-boot controller postman nativequery


    【解决方案1】:

    您可以为此使用地图吗? 只需使用地图而不是列表即可。

    Map<String, List<Object>> foo = new HashMap<String, List<Object>>();
    List<Product> list = new ArrayList<Product>();
    list.add("key1_value1");
    list.add("key1_value2");
    foo.put("key1",list);
    List<Customer> list2 = new ArrayList<Customer>();
    list2.add("key1_value1");
    list2.add("key1_value2");
    foo.put("key2",list2);
    

    【讨论】:

      猜你喜欢
      • 2017-06-28
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      相关资源
      最近更新 更多