エンティティ オファーがあり、2 つのフィールドの組み合わせで名前付きクエリを作成する必要があります。
フィールド 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))
「and」は他の結果に基づいて増加します。最大 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");
だから私は2番目のオプションしかないと思いますか?実際のクエリとまったく同じように、実際の値を動的に使用してクエリを作成します。
1番目のものを使用する方法はありますか?