2017-01-03 6 views
1

Ich entwickle eine Anwendung mit Java und Hibernate.Wählen Sie eine einzelne Spalte aus einer einzelnen Zeile Hibernate

Jetzt gibt es eine Tabelle Empdata und sagen wir zwei unter seinen vielen Spalten sind uid (Primärschlüssel) und Aufwand.

Jetzt mit Hibernate, möchte ich Aufwand für eine bestimmte UID extrahieren.

Wie mache ich das mit Hibernate?

+1

Wenn Sie mit einem '@ Entity' die Zeilen darstellen, können Sie entweder eine' verwenden @ NamedQuery' mit HQL oder Kriterien API verwenden. – Smutje

+0

@Smutje, bitte erarbeiten .... – rkarwayun

Antwort

3

Erstellen Sie eine Methode, die uid als Argument verwendet und eine 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(); 
} 

Hier habe ich die Annahme, dass effort is of type Effort und uid is of type Integer

+0

Ja, das war sehr hilfreich. Vielen Dank!! – rkarwayun

2

In HQL können Sie verwenden Liste() Funktion eine Liste von Object [] Array zu erhalten, die Ergebniszeilen enthält:

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

in zurückgegebene Array 1-st-Element wird id sein zweiter - Namen.

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

Edit: Eine andere Antwort auf eine andere Frage:

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

Danke, aber wenn ich nur eine einzige Daten für einen bestimmten Wert des Primärschlüssels (und verwenden Sie so etwas wie uniqueResult()) wollen, was soll ich tun? – rkarwayun

+0

sql wäre wie "wähle e.uid von Empdata e wo Vorname = abc" –

+0

so etwas? –

Verwandte Themen