JPA 2.0 對 Java Persistence Query Language (JPQL) 做大量改進,現支援 CASE 條件運算式,可在更新薪資時依評級給予不同調幅:
UPDATE Employee e
SET e.salary = CASE
WHEN e.rating = 1 THEN e.salary * 1.1
WHEN e.rating = 2 THEN e.salary * 1.05
ELSE e.salary * 1.01
END
NULLIF:將特定值轉為 NULL,如將 -99999 轉為 NULL 以正確計算平均薪資:SELECT AVG(NULLIF(e.salary, -99999)) FROM Employee eCOALESCE:回傳參數列表中第一個非 NULL 值,等價於巢狀 CASE。範例:SELECT Name, COALESCE(e.work_phone, e.home_phone) phone FROM Employee eINDEX、TYPE、KEY、VALUE、ENTRY:支援排序、實體類型限制、Map 鍵值對操作支援選擇列表、集合值參數、非多態查詢中的運算子等,進一步豐富 JPQL 表達能力。