2013-04-28 57 views
0

我已經寫在下面的代碼段之間的差異(即cb一個CriteriaBuilder實例):JPA等於方法:通過ParameterExpression和對象

String someString = "someValue"; 
Predicate p = cb.equal(
    somePath, 
    cb.parameter(String.class, "someParameter")); 
// TODO create query, bind someParameter to someString 

但是下面做這項工作,以及:

String someString = "someValue"; 
Predicate p = cb.equal(
    somePath, 
    someString); 

除了類型檢查,還有其他區別嗎?當JPA提供者解析查詢時,性能是否一樣?

回答

0

由於您使用Criteria動態創建兩個查詢,應該沒有什麼區別。最好的方法是使用JPQL進行名稱查詢,這將避免任何解析和準備成本。