【问题标题】:Custom Spring JPA query to fetch a Map自定义 Spring JPA 查询以获取地图
【发布时间】:2023-03-22 20:39:01
【问题描述】:

我有一个实体,其 Map<String,string>specifications

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

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

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

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

我试过这个查询:

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

但显然,它不起作用。

【问题讨论】:

  • “没用”。 “明显地”。你真的告诉我们很多。 “d.specifications.?1”显然是无效的 JPQL。

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


【解决方案1】:

一个可行的解决方案如下:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-25
    • 2015-12-07
    • 2016-04-15
    • 2017-11-15
    • 2012-09-13
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多