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 上测试)。
我有以下表达式来连接两列
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 上测试)。