如何解决来自 2 个不相关对象的 List<Object> 仅显示一个对象作为结果
我想在 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);
我想用条件添加他们的结果:
@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<Product>
的结果。有没有办法同时显示两者?
解决方法
您可以为此使用地图吗? 只需使用地图而不是列表即可。
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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。