Как написать это утверждение в запросе DSL
У меня есть довольно простой оператор case для записи в querydsl:
случай, когда столбец>= 1 и столбец< 31, затем 1 или 0 заканчивается
Я попробовал следующий подход:
table.column.goe(Expressions.numberTemplate(Long.class,"1")).and(table.column.lt(Expressions.numberTemplate(Long.class, "31"))).when(Expressions.booleanTemplate("true")).then(Expressions.numberTemplate(Long.class, "1")).otherwise(Expressions.numberTemplate(Long.class, "0"))
Проблема в том, что это выражение интерпретируется как:
select sum(case when table.column >= 1 and table.column < 31 = true then 1 else 0 end)
Есть ли способ избежать указания предложения when или поместить выражения goe и lt внутри предложения when?
Кстати, прямое указание чисел не работает в случае выражений. Необходимо использовать Expressions.numberTemplate