2013-12-13 89 views
3

我在JPA新的,但要實現我的項目在技術如何在標準查詢jpa中傳遞參數列表?

我想要做的通過CriteriaQuery是建立一些數據庫查詢,但不知道如何傳遞參數列表下面的代碼:

CriteriaBuilder qb = em.getCriteriaBuilder(); 
    CriteriaQuery<MyClass> c = qb 
      .createQuery(MyClass.class); 
    Root<MyClassPK> p = c 
      .from(MyClass.class); 

    c.where(qb.equal(qb.trim((p.<MyClass> get("id")).<String> get("Name")), 
    HERE LIST OF ARGS HOW TO PASS ??));  
TypedQuery<MyClass> q = em.createQuery(c); 

該代碼看起來非常複雜,因爲複雜的數據庫體系結構。有人能告訴我如何解決我的問題嗎?或者也許只有一個解決方案是(...)?

回答

2

如果我深知你的問題,你需要一個「在」條件:

CriteriaBuilder qb = em.getCriteriaBuilder(); 
CriteriaQuery<MyClass> c = qb.createQuery(MyClass.class); 
Root<MyClassPK> p = c.from(MyClass.class); 

// c.where(qb.equal(qb.trim((p.<MyClass> get("id")).<String> get("Name")), HERE LIST OF ARGS HOW TO PASS ??));  

List<String> names = new ArrayList<String>(); 
names.add("name1"); 
names.add("name2"); 
names.add("name3"); 
c.where(qb.trim((p.<MyClass> get("id")).<String> get("Name")).in(names)); 

TypedQuery<MyClass> q = em.createQuery(c); 
+0

謝謝回答!我會在週末之後嘗試工作,不幸的是,您的提示不起作用,問候 –

+0

。我的日食下劃線修剪方法,並說:「請重命名文件」...謝謝 –

+0

我錯過了),我會立即糾正它 –