Votre requête peut être traduite dans le code jOOQ suivant :
// Assuming this:
import static org.jooq.impl.DSL.*;
using(configuration)
.deleteFrom(MY_TABLE)
.where(row(MY_TABLE.FIRST, MY_TABLE.LAST).notIn(
row("Joe", "Smith"),
row("Mark", "Taylor")
))
.execute();
Ceci utilise DSL.row()
pour construire des expressions de valeur de ligne. Notez que ROW est un mot clé facultatif dans PostgreSQL. Vous venez de l'omettre dans votre exemple SQL.
Voir aussi la section du manuel sur le IN prédicat pour degrés> 1 :
https://www .jooq.org/doc/latest/manual/sql-building/conditional-expressions/in-predicate-degree-n