2017-01-03 23 views
1

JavaとHibernateを使用してアプリケーションを開発しています。単一行から単一の列を選択するHibernate

ここでは、テーブルEmpdataがあり、その多くの列のうち2つがuid(主キー)と作業ですとしましょう。

ここで、Hibernateを使用して、特定のuidのための努力を抽出したいと思います。

Hibernateを使ってどうすればいいですか?

+1

は、あなたが持っているという前提を取っ 'Entity'行を表す@、あなたはHQLで' @ NamedQuery'を使用するか、基準の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では、結果の行を含むオブジェクト[]配列のリストを取得するには、リスト()関数を使用することができます。

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

を返される配列の1番目の要素に第2のIDになります - 名前を。

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は "Emptataからe.uidを選択しますfirstname = abc"のようになります –

+0

そのようなものはありますか? –

関連する問題