任何人都可以提供一个如何使用CriteriaBuilder
编写案例查询的示例吗?
答案 0 :(得分:7)
以下是使用CriteriaBuilder
的示例案例表达式(这在JPA 2中有效):
Hashtable caseTable = new Hashtable(3);
caseTable.put("Bob", "Bobby");
caseTable.put("Susan", "Susie");
caseTable.put("Eldrick", "Tiger");
Expression expression = builder.get("firstName").caseStatement(caseTable, "NoNickname").equal("Bobby");
它生成以下SQL
查询:
"CASE t1.firstName WHEN 'Bob' THEN 'Bobby' WHEN 'Susan' THEN 'Susie' WHEN 'Eldrick' THEN 'Tiger' ELSE 'NoNickname' END = 'Bobby'"
有关详细信息,请参阅JPA 2.0 Case Expressions。
答案 1 :(得分:5)
我在JPA 2.0 Criteria API中找不到“caseStatement”。似乎它的EclipseLink特定。 正确的方法是使用“builder.selectCase()”
中的“案例表达式”部分