Vous pouvez dériver ce que vous voulez faire (code que vous voulez écrire) du SQL que vous voulez exécuter en vous basant sur le manuel jOOQ. J'y pensais, mais pour une raison quelconque, j'ai pris beaucoup de temps, alors prenez une note pour que je puisse m'en souvenir.
https://www.jooq.org/doc/3.9/manual/sql-building/column-expressions/case-expressions/
Exprimez l'instruction CASE WHEN suivante dans jOOQ
-- (Exemple approprié)
--Personne spécifique de moins de 30 ans(ID)Si le salaire mensuel des autres personnes est doublé et n'atteint pas 500000 yens, ce sera un succès
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 Comme ça
//Omis avant WHERE
.and(
DSL.when(
person.getId().in(100, 1000),
person.getSalary()
).otherwise(
person.getSalary().mul(2)
).lt(500000)
)
Recommended Posts