Saya tidak tahu apa itu JPA (saya bisa mencarinya di Google; maksud saya adalah saya tidak mengenalnya); tetapi:jika ada harapan untuk menangani kueri SQL, dan satu-satunya masalah adalah menerjemahkan kondisi pada tupel, tulis ulang kueri seperti ini:
select city
from user
where firstname = 'a' and lastname = 'b'
or firstname = 'c' and lastname = 'd'
;
Inilah yang akan dilakukan mesin kueri dengan kueri asli Anda; Anda dapat melihat RENCANA JELAS untuk meyakinkan diri Anda tentang hal ini.
Beberapa orang suka memberi tanda kurung di setiap pasangan AND
-kondisi terhubung; Saya tidak, sama seperti saya akan menggunakan tanda kurung untuk 2 * 3 + 4 * 6, tetapi jika Anda merasa mereka menambah kejelasan, tentu saja Anda dapat menambahkannya.