JPA Criteria API 导致缺少右括号错误

JPA Criteria API causing missing right parenthesis error

我有以下表达式来连接两列

Expression<String> stringConcat = 
criteriaBuilder.concat(criteriaBuilder.concat(rootPr.get(ProductList_.prodDesc), " # "), 
rootEmp.get(ProductEmp_.empNo));

并按以下方式在 CriteriQuery 中使用,

criteriaQuery.multiselect(root.get(ProductCatalogue_.userId), 
root.get(ProductCatalogue_.productList),criteriaBuilder.selectCase()
.when(criteriaBuilder.equal(root.get(ProductCatalogue_.prodId),"ZCX"), stringConcat)
.otherwise(rootPr.get(ProductList_.prodDesc)));

但是当生成SQL时,它抛出错误

missing right parenthesis

因为在 if else 中 SQL 的一部分有一个问号,因为它需要一个参数

THEN (t0.prodDesc = ?)

如何解决这个问题?

is an EclipseLink bug,已在版本 2.4.2 中修复。 升级到更新的版本,它将工作(在 EclipseLink 2.5.2 上测试)。