2017-05-04 64 views
0

我的代碼片段:使用JPA標準API與模式選擇

criteriaQuery.select(root); 
Predicate ctfPredicate; 

if (deptPattern.contains("%") || deptPattern.contains("_")) { 
    deptPattern = deptPattern.replaceAll("%", "^%").replaceAll("_", "^_"); 
} 
System.out.println("case sensitive " +deptPattern); 
ctfPredicate = criteriaBuilder.like((Expression)root.get("name"), "%" + deptPattern + "%", '^');    

criteriaQuery.where(criteriaBuilder.and(ctfPredicate)); 

TypedQuery<Object> typedQuery = entitymanager.createQuery(criteriaQuery); 
List<Object> resultlist = typedQuery.getResultList(); 
printResult(resultlist); 

的resultList不返回任何內容,而DB有2項與DNAME銷售。 獲取打印的查詢: select department0_.deptno as deptno0_,department0_.loc as loc0_,department0_.dname as dname0_ from mydept department0_ where department0_.dname like?逃生?使用

數據庫是Oracle和JPA2.0供應商是EclipseLink的

+0

這條線打印什麼? 'System.out.println(「區分大小寫」+ deptPattern);' – user75ponic

+0

區分大小寫銷售^% – kakoli

+0

檢查'resultlist'的大小,可能方法名稱是'resultlist.getSize();' – user75ponic

回答

0

的分貝有項與名稱銷售,無需%。 而輸入模式爲'銷售%'。我將其更改爲'Sales',因爲代碼正在向輸入添加'%'。 並且結果列表返回了兩個條目。

+0

這是否意味着您正在正確或預期的結果? – user75ponic