我的实体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")
但很明显,它不起作用。
答案 0 :(得分:2)
一个有效的解决方案如下:
SELECT p FROM Product p LEFT JOIN p.specifications, p.reviews m
where ( KEY(m) = :1 and :2 in (VALUE(m)) )