2011-12-17 54 views
0

從PHP/CodeIgniter的背景,其中運行的查詢是非常簡單即將查詢參數......如何用Java準備

$this->db->query('SELECT * FROM users WHERE id = ?', array(
    $userId 
)); 

我試圖實現與Java類似的東西。我知道跑直查詢可以簡單如...

TypedQuery<Guest> query = em.createQuery(
     "SELECT g FROM Guest g ORDER BY g.id", Guest.class); 
    return query.getResultList(); 

但是我怎麼注入參數到查詢?

+2

它可能是掠過這是一個好主意:http://www.objectdb.com/java/jpa/query/api – flesk 2011-12-17 18:11:13

回答

2

您可以使用命名參數或位置參數。

命名參數
SELECT g FROM Guest g WHERE g.name = :name

然後你就可以在你的查詢引用這樣寫:
query.setParameter("name", aName)

位置參數 SELECT g FROM Guest g WHERE g.name = ?1

然後你就可以在你的查詢寫參考:
query.setParameter(1, aName);