Ich weiß nicht, was JPA ist (ich kann es googeln; was ich meine, ist, dass ich damit nicht vertraut bin); aber:wenn es Hoffnung gibt, eine SQL-Abfrage zu handhaben, und das einzige Problem darin besteht, eine Bedingung für Tupel zu übersetzen, dann schreiben Sie die Abfrage wie folgt um:
select city
from user
where firstname = 'a' and lastname = 'b'
or firstname = 'c' and lastname = 'd'
;
Dies ist, was die Abfrage-Engine unabhängig davon mit Ihrer ursprünglichen Abfrage macht; Sie können sich einen EXPLAIN PLAN ansehen, um sich davon zu überzeugen.
Einige Leute setzen gerne Klammern um jedes Paar AND
-verbundene Bedingungen; Ich nicht, genauso wenig wie ich Klammern für 2 * 3 + 4 * 6 verwenden würde, aber wenn Sie der Meinung sind, dass sie die Klarheit erhöhen, können Sie sie auf jeden Fall hinzufügen.