で私のコードスニペットを選択するために、JPA基準APIを使用した:DBはdnameの販売と2つのエントリを持っているのに対し、パターン
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は、何も返しません。 照会が印刷されます: 部門0を選択deptno0、部門0_.locをloc0_、部門0_.dnameをdname0_からmydept department0_ where department0_.dname like?エスケープ?使用
データベースは、Oracleで、JPA2.0のベンダーは、%なしで、DBは営業として名前のエントリを持っていたのEclipseLink
この行は何を印刷しますか? '%system.out.println(大文字小文字を区別する" + deptPattern); ' – user75ponic
大文字小文字の区別Sales%% – kakoli
' resultlist'のサイズを調べてください。おそらくメソッド名は 'resultlist.getSize();' – user75ponic