По сути, у меня есть два поля «totalAmountWithShipping» и «totalAmountPlusShipping», и я хочу проецировать «totalAmountWithShipping» в новое поле с именем realTotalAmount, если «totalAmountWithShipping» больше 0, и проект «totalAmountPlusShipping» в «realT».
Я пробовал это:
project("day", "month", "year")
.and(
ConditionalOperators.`when`(
ComparisonOperators.Eq.valueOf("totalAmountWithShipping").equalToValue(0.0)
).thenValueOf("totalAmountPlusShipping").otherwiseValueOf("totalAmountWithShipping")).`as`("realTotalAmount")
, но всегда получаю 0.0 на "realTotalAmount", если условие истинно (то есть, если я проецирую "totalAmountPlusShipping").Это работает как должно, когда условие ложно, хотя.
Если я попытаюсь:
project("day", "month", "year")
.and(
ConditionalOperators.`when`(
ComparisonOperators.Eq.valueOf("totalAmountWithShipping").equalToValue(0.0)
).then(100.0).otherwise(1.0)).`as`("realTotalAmount")
, это работает как ожидалось.