2017-01-03 18 views
1

我正在開發一個使用Java和Hibernate的應用程序。從單行中選擇一列Hibernate

現在,有一個表Empdata,讓我們說它的許多列中的兩個是uid(主鍵)和努力。

現在使用Hibernate,我想爲特定的uid提取精力。

我將如何使用Hibernate?在返回數組1,第一單元

Query query = session.createQuery("select e.uid from Empdata e"); 
List<Object[]> rows = query.list(); 

將ID,第二 - 名稱:

+1

當您遇到的假設一個'@ Entity'代表行,你可以使用一個'@ NamedQuery'與HQL或使用的標準API。 – Smutje

+0

@Smutje,請詳細說明.... – rkarwayun

回答

3

創建需要uid作爲參數,並返回一個effort的方法。

public Effort getEffort(Integer uid){ 
    Query query = session.createQuery("SELECT e.effort FROM Empdata e WHERE e.uid=:uid"); 
    query.setParameter("uid", uid); 
    return query.uniqueResult(); 
} 

這裏我把那effort is of type Effortuid is of type Integer

+0

是的,這非常有幫助。謝謝!! – rkarwayun

2

在HQL你可以使用list()函數來獲取包含結果行對象[]數組列表。

for (Object[] row: rows) { 
    System.out.println(" ------------------- "); 
    System.out.println("id: " + row[0]);   
} 

編輯:另一個回答另一個問題:

String hql = "from Empdata where firstname= :fn";  
Query query = session.createQuery(hql); 
query.setParameter("fn", "Saad"); 
query.setMaxResults(1); 
Effort ef = (Effort) query.uniqueResult(); 
+0

謝謝,但如果我只想要一個與主鍵的特定值對應的單個數據(並使用uniqueResult())之類的東西,我該怎麼做? – rkarwayun

+0

sql會像「從Empdata e選擇e.uid,其中firstname = abc」 –

+0

類似的東西? –