spring-data-jpa 在JPA Spring Boot中返回Map结果

dxpyg8gm  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(256)

因此,我有一个包含products表的数据库,要求我传递产品代码列表,然后它返回Map的productName和相应的productCode。
大概是这样的:(列出产品代码);
我是Java和SpringBoot的新手,我需要在任何查询或自定义函数中使用仓库代码,这可能吗?

  • 我们使用JPA。
  • Products表也有其他字段。

BruteForce的方法是在productCodes列表中运行for循环,通过逐个查找名称来填充Map。

zxlwwiss

zxlwwiss1#

您可以像这样创建Spring Data JPA存储库查询:

Stream<Product> findAllByProductCode(Collection<String> productCodes);

这将给予你一个Java Stream,然后你应该能够把Stream的元素Map到一个Map,就像你所描述的那样。

Map<String, String> productMap = repository
  .findAllByProductCodes(productCodes)
  .collect(toMap(Product::getProductCode, Product::getProductName));

编辑:我应该指出,这将获取在Product JPA实体中指定的所有数据字段,而不仅仅是productCodeproductName。例如,如果Product定义了一个急切加载的集合,这可能值得注意。

相关问题