CREATE TABLE Songs AS {
ALBUM varchar,
TITLE varchar,
...
PRIMARY KEY (ALBUM, TITLE)
}
How can I generate a query like this using QueryDSL-SQL?
SELECT * from Songs WHERE (ALBUM, TITLE) in (('A', 'B'), ('C', 'D'));
I've tried this:
QTuple proj = Projections.tuple( QSong.song.album, QSong.song.title );
new SQLQuery<>( conn )
.select( QSong.song )
.from( QSong.song )
.where( Expressions.list( QSong.song.album, QSong.song.title )
.in( proj.newInstance( "A", "B" ),
proj.newInstance( "C", "D" ) ) );
Unfortunately that resulted in malformed SQL (square brackets and no quotes):
SELECT * from Songs WHERE (ALBUM, TITLE) in ([A, B], [C, D]);