webentwicklung-frage-antwort-db.com.de

Wie wählt man eine Spalte im Ruhezustand aus?

Ich möchte mit Hibernate eine einzelne Spalte anstelle eines ganzen Objekts auswählen. Bisher habe ich das:

 List<String> firstname = null;

 firstname = getSession().createCriteria(People.class).list();

Mein Problem ist, dass der obige Code die gesamte People-Tabelle als Objekt anstelle von nur "Vorname" zurückgibt. Ich bin nicht sicher, wie ich festlegen soll, dass nur "firstname" anstelle des gesamten Objekts zurückgegeben wird.

36
ThreaT

Sie können die Projektion wie folgt einstellen:

.setProjection(Projections.property("firstname"))

Mit diesem können Sie nur den Vornamen zurückbekommen.

Ich habe einen anderen Link auf Stapel mit dem gleichen Szenario gefunden. Hoffe, dies wird auch helfen Wie verwendet man Ruhezustandskriterien, um nur ein Element eines Objekts anstelle des gesamten Objekts zurückzugeben?

44
rizzz86

Wenn Sie zwei oder mehr Spalten abfragen und die Werte aus der Abfrage abrufen müssen, gehen Sie folgendermaßen vor:

....
crit.setProjection(Projections.property("firstname"));
crit.setProjection(Projections.property("lastname"));

List result = crit.list();

...

for (Iterator it = result.iterator(); it.hasNext(); ) {
    Object[] myResult = (Object[]) it.next();
    String firstname = (String) myResult[0];
    String lastname = (String) myResult[1];

    ....
}
7
Thai Tran

Sie können ProjectionList verwenden, wenn Sie eine Bedingungsbasisprojektion wünschen, z

  ProjectionList prjection = Projections.projectionList();
if(abc){
    prjection.add(Projections.property("firstname"));
}
else if(xyz){
    prjection.add(Projections.property("lastname"));
}

    ........

    criteria.setProjection(prjection);
2
DDshah