0
我有以下表達式來連接兩個列JPA標準API導致缺少右括號錯誤
Expression<String> stringConcat =
criteriaBuilder.concat(criteriaBuilder.concat(rootPr.get(ProductList_.prodDesc), " # "),
rootEmp.get(ProductEmp_.empNo));
,並在CriteriQuery應用於followng方式,
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然而,當,它是投擲錯誤
缺少右括號
,因爲SQL的if else
部分有一個問號,因爲它是需要一個參數
THEN (t0.prodDesc = ?)
如何解決這個問題呢?
爲什麼不顯示爲該條件查詢生成的完整SQL而不是某些快照。然後提及哪個JPA提供商。然後,如果它生成不正確的SQL,那麼引發你的JPA提供者的錯誤(他們都有錯誤並且需要知道這樣的事情) –
和ProductEmp_ ...這與候選實體有什麼關係?並加入到它的位置?要驗證是否是導致問題的「concat」...只需執行Criteria查詢選擇「concat」並查看它是否將此參數放在那裏 –
rootEmp是什麼?如果不知道它是什麼,就不能評論這個concat。也如上所述...嘗試使用JUST concat作爲select子句的基本條件查詢來僅測試concat(即不測試) –