2013-08-19 62 views
0

我正在使用JPA(實體管理器)標準查詢從數據庫中獲取結果。我需要在標準之間加上'OR'子句。JPA:m =使用實體管理器(OR子句)的多個標準

我的代碼是如下:

List<Predicate> criteraList = new ArrayList<Predicate>(); 
if(user.getEid() != null){ 
    criteraList.add(criteriaUserCountry.like((Expression) userList.get("userCountryPK").get("user").get("eid"), "%" + user.getEid() + "%")); 
} 
if(user.getFirstName() != null) { 
    criteraList.add(criteriaUserCountry.like((Expression) userList.get("userCountryPK").get("user").get("firstName"), "%" + user.getFirstName() + "%")); 
} 
cq.where(criteraList.toArray(new Predicate[]{})); 
TypedQuery<UserCountry> query = entityManager.createQuery(cq); 

在SQL查詢而言,上面的代碼中插入「與」不同的審覈規定之間。如何使用Entity Manager的標準來實現'OR'條款。

+0

可能的[如何生成OR語句的謂詞數組]的副本(http://stackoverflow.com/questions/18226800/how-to-generate-a-predicate-array-of-or-statements) – perissf

回答

1

使用OR predicate

注意,因爲它具有可變參數的重載,你可以傳遞一個Predicate[]給它。

相關問題