Java中QDSL CaseBuilder中的sum()存在问题

Java中QDSL CaseBuilder中的sum()存在问题,java,aggregate,querydsl,Java,Aggregate,Querydsl,当使用一段代码运行单元测试时,在列表()中使用了这个带有CaseBuilder()的部分,我得到了一个错误 以下是错误的部分: 原因:org.h2.jdbc.JdbcSQLException:错误数据类型上的SUM或AVG 对于“总和(当(ABS(T_VW.VALUE)>=?1)然后?2否则?3结束时的情况)”;SQL 声明: 当我删除sum()时,没有错误。同样的代码在主产品代码中也可以正常工作,但仅在单元测试运行中失败。我错过了什么?我试着合并,但没有成功。我在线搜索了错误消息,但找不到与我

当使用一段代码运行单元测试时,在列表()中使用了这个带有CaseBuilder()的部分,我得到了一个错误

以下是错误的部分:

原因:org.h2.jdbc.JdbcSQLException:错误数据类型上的SUM或AVG 对于“总和(当(ABS(T_VW.VALUE)>=?1)然后?2否则?3结束时的情况)”;SQL 声明:


当我删除sum()时,没有错误。同样的代码在主产品代码中也可以正常工作,但仅在单元测试运行中失败。我错过了什么?我试着合并,但没有成功。我在线搜索了错误消息,但找不到与我的案例相关的任何内容。

H2无法从参数推断表达式类型。您必须显式地强制转换参数。尝试:
。然后(Expressions.asNumber(1).castToNum(Integer.class))。否则(0)

  new CaseBuilder()
    .when((((vTVw.value.abs().goe(20)))
       .or(null)))
    .then(1)
    .otherwise(0)
    .sum()