14

Is there way to define empty condition which produces nothing in output sql query? Now, for default condition I use trueCondition()

private static Condition limitCondition(Integer offset, Integer count) {
    Condition limitCondition = trueCondition();
    if (count != null && offset != null) {
        limitCondition = rowNum.between(offset, count + offset);
    } else if (count == null && offset != null) {
        limitCondition = rowNum.greaterOrEqual(offset);
    } else if (count != null && offset == null) {
        limitCondition = rowNum.lessOrEqual(count);
    }
    return limitCondition;
}

2 Answers2

24

There is DSL.noCondition() starting with jOOQ 3.11, which can act as an identity for both AND and OR operators, and doesn't produce any output unless strictly required (e.g. when projecting it in SELECT), in case of which it acts like DSL.trueCondition()

For more details, see:

Lukas Eder
  • 211,314
  • 129
  • 689
  • 1,509
  • thank you, Lukas. another question is there plan to implement using offset without limit clause? –  Feb 18 '16 at 14:17
4

Maybe a bit too late for this but on 3.14 version, there is a static method you can use.

Condition result = trueCondition();

refer: jooq documentation