Does JPA support multiple column membership in where clause? i.e.,
where (expr1, expr2) in ( (1, 2), (3, 4));
The JPA specification is built on top of the HQL (Hibernate Query Language) specification, which generally does not contain language features which are specific to certain databases. As the tuple where clause syntax is only supported by certain databases, such as MySQL, but not others, such as Oracle or SQL Server, therefore JPA will not support this.
You may express your original:
where (expr1, expr2) in ((1, 2), (3, 4));
as:
where (expr1 = 1 and expr2 = 2) or (expr1 = 3 and expr2 = 4);
Your other option, if you are running a database which supports the tuple where syntax, such as MySQL, would be to use a native query instead of JPQL.