我有以下表达式来连接两列
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时,它会抛出错误
缺少右括号
因为在if else
部分SQL中有一个问号,因为它需要一个参数
THEN (t0.prodDesc = ?)
如何解决此问题?