我有一个实体 Offers,我需要在两个字段的组合上构建命名查询。
字段 pr_id 和 of_id。
所以实际的查询看起来像
Select pr_id, of_id, a, b from Offers
where ( (pr_id=1 and of_id=2)
or (pr_id=2 and of_id=1)
or (pr_id=1 and of_id=2))
“和”根据其他结果增加。最多 10 个。但这个问题没关系。值显然是参数。
我需要调用一个库方法
findByNamedQuery( QueryName, Map<String, Object>) or
findByQuery(query)
不能改变上述方法。如果我使用第一个,如果字段名称和动态参数名称在使用 JPA 的查询中重复,我不确定它是如何工作的。
因此,以 JPA 为例,它看起来像这样:
map("pr_id",":pr_id");
map("of_id",":of_id");
map("pr_id",":pr_id");
map("of_id",":of_id");
map("pr_id",":pr_id");
map("of_id",":of_id");
所以我想我只有第二个选择?使用实际值动态构建查询,就像实际查询一样。
知道如何使用第一个吗?