使用以下代码我在sql语句中出错:
Expression<Number> difference = queryBuilder.diff(A, B);
Predicate differenceGEtoZero = queryBuilder.ge(difference, new Long(0));
CriteriaBuilder.Case<Number> when = queryBuilder.<Number>selectCase().when(
differenceGEtoZero, difference
);
queryDefinition.select(
queryBuilder.construct(
State.class,
root.get("object"),
queryBuilder.sum(
when.otherwise(new Long(0))
)
)
);
我在CASE'S THEN部分中得到这个包含错误的sql语句:
SUM(
CASE WHEN ((t1.A - t1.B) >= 0)
THEN ((t1.A - t1.B) >= 0) //'>= 0' should not appear here!!!
ELSE 0
END )
我预计只会出现差异((t1.A - t1.B),而不是条件&gt; = 0。
我正在使用这个版本的lib:org.apache.openejb:javaee-api:6.0-5和eclipseLink 2.3.2作为提供者
你能否告诉我代码中有什么问题?
提前谢谢你。 NIC
答案 0 :(得分:0)
似乎是以下版本的eclipseLink解决的错误。
使用2.5.1
,一切正常。