自定义Spring JPA查询以获取地图

时间:2016-06-20 18:06:47

标签: spring jpa spring-data spring-data-jpa jpql

我的实体Map<String,string>specifications

class Product {
    Map<String, String> specifications;
}

我必须使用2个参数(键,值)创建一个自定义查询,该参数将获取所有带有键等于某个值的规范的产品。

例如,使用红色(伪代码)获取产品:

  

循环产品;
获取产品;
加入规格;
  通过键'color'获取值并将其与给定值'red'进行比较;如果为true则添加到输出;   下一个产品;

我尝试了这个查询:

@Query("SELECT p FROM Products p LEFT JOIN FETCH p.specifications, p.reviews WHERE p.specifications.?1 = ?2")

但很明显,它不起作用。

1 个答案:

答案 0 :(得分:2)

一个有效的解决方案如下:

SELECT p FROM Product p LEFT JOIN p.specifications, p.reviews m
where ( KEY(m) = :1 and :2 in (VALUE(m)) )