2013-02-13 46 views
0

我當前的代碼提取物

Object resultQuery; 
EntityManagerFactory emf = Persistence.createEntityManagerFactory("TESTPU"); 
EntityManager em = emf.createEntityManager(); 
TypedQuery<Account> tp = em.createQuery("SELECT a FROM Account a WHERE a.email = :email AND a.pwd = :pwd AND a.role = 'admin'", Account.class); 
tp.setParameter("email", this.username); 
tp.setParameter("pwd", this.password); 
resultQuery = tp.getSingleResult(); 

結果存儲在resultQuery對象,但我對如何提取對象內部的DATAS困惑內的值。

比方說,我想從resultQuery對象

回答

3

它看起來像這個問題是resultQuery類型提取賬戶內的表列name。鑑於tpTypedQuery<Account>型我*想到是這樣的:

Account result = tp.getSingleResult(); 

...在這一點很容易從Account得到名字,大概是。例如:

String name = result.getName(); 

是否有任何理由要resultQuery輸入爲Object,而不是Account在你的代碼?

我自己並沒有使用TypedQuery,但documentation for getSingleResult()肯定表明這是正確的做法。

+0

哦!我很愚蠢的使用結果作爲一個對象。感謝一堆! – galao 2013-02-13 07:49:15

0

更新時間:

在這種情況下tp.getSingleResult()會返回一個Account對象。您可以將返回的值分配(不包含任何投射)到Account參考。

+0

這是比實際回答更多的評論。 – SudoRahul 2013-02-13 07:50:00

+0

重要的是,'resultQuery'的類型是'Object'。 'resultQuery'的* value *是對'Account'類型的對象的引用,但這是另一回事。 – 2013-02-13 07:59:09