Sie können aus dem SQL, das Sie ausführen möchten, basierend auf dem jOOQ-Handbuch ableiten, was Sie tun möchten (Code, den Sie schreiben möchten). Ich habe darüber nachgedacht, aber aus irgendeinem Grund habe ich mir viel Zeit genommen. Machen Sie sich also eine Notiz, damit ich mich daran erinnern kann.
https://www.jooq.org/doc/3.9/manual/sql-building/column-expressions/case-expressions/
Drücken Sie die folgende CASE WHEN-Anweisung in jOOQ aus
-- (Geeignetes Beispiel)
--Bestimmte Person unter 30 Jahren(ID)Wenn das monatliche Gehalt der anderen Leute verdoppelt wird und 500.000 Yen nicht erreicht, wird es ein Hit
SELECT *
FROM person
WHERE person.age < 30
AND (
CASE
WHEN person.id IN (100, 1000)
THEN person.salary
ELSE person.salary * 2
END
) < 500000;
jOOQ So was
//Vorher weggelassen WO
.and(
DSL.when(
person.getId().in(100, 1000),
person.getSalary()
).otherwise(
person.getSalary().mul(2)
).lt(500000)
)