gpt4 book ai didi

java - Spring数据条件投影未按预期工作

转载 作者:太空宇宙 更新时间:2023-11-04 09:50:32 24 4
gpt4 key购买 nike

基本上,我有两个字段“totalAmountWithShipping”和“totalAmountPlusShipping”,并且希望如果“totalAmountWithShipping”大于 0,则将“totalAmountWithShipping”投影到名为“realTotalAmount”的新字段,否则将“totalAmountPlusShipping”投影到“realTotalAmount”。

我尝试过这个:

project("day", "month", "year")
.and(
ConditionalOperators.`when`(
ComparisonOperators.Eq.valueOf("totalAmountWithShipping").equalToValue(0.0)
).thenValueOf("totalAmountPlusShipping").otherwiseValueOf("totalAmountWithShipping")).`as`("realTotalAmount")

但如果条件为真(即,如果我投影“totalAmountPlusShipping”),“realTotalAmount”总是得到 0.0。如果条件为假,它就会正常工作。

如果我尝试:

project("day", "month", "year")
.and(
ConditionalOperators.`when`(
ComparisonOperators.Eq.valueOf("totalAmountWithShipping").equalToValue(0.0)
).then(100.0).otherwise(1.0)).`as`("realTotalAmount")

它按预期工作。

最佳答案

将“$”与字段名称一起使用,因为您要传递对该字段的引用。以下查询应该有效:

project("day", "month", "year")
.and(
ConditionalOperators.when(
ComparisonOperators.Eq.valueOf("$totalAmountWithShipping").equalToValue(0.0)
).thenValueOf("$totalAmountPlusShipping").otherwiseValueOf("$totalAmountWithShipping")).as("realTotalAmount")

关于java - Spring数据条件投影未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54807807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com