Мне нужно создать запрос гибернации, который бы делал что-то вроде этого:
select p from Person p where (p.name, p.surname) in (('Peter', 'Black'), ('Thomas', 'Peterson'), ('Julia', 'Cook'))
Длина списка имени / фамилии не определена заранее, а имя и фамилия могут содержать любые символы (имя и фамилия используются только для иллюстрации)
Также я хотел бы вставить значения в качестве параметра запроса, чтобы предотвратить внедрение SQL.
решений, которые не приемлемы:
(p.name || '--' || p.surname) in (:mergedNameSurname)
решение, которое я бы хотел избежать:
((p.name = :name1 and p.surname = :surname1) or (p.name = :name2 and p.surname = :surname2) ...)
У вас есть идея, как это можно сделать?