Frage

Ich verwende Hibernate 3.2 und unter Verwendung von Kriterien, um eine Abfrage zu erstellen. Ich möchte hinzufügen, und „order by“ für eine Viele-zu-Eins-Zuordnung, aber ich sehe nicht, wie das getan werden kann. Die Hibernate-Abfrage würde am Ende so aussieht, ich denke:

select t1.a, t1.b, t1.c, t2.dd, t2.ee
from t1
inner join t2 on t1.a = t2.aa
order by t2.dd   <-- need to add this

Ich habe versucht, criteria.addOrder ( „assnName.propertyName“), aber es funktioniert nicht. Ich weiß, es kann für den normalen Eigenschaften erfolgen. Bin ich etwas fehlt?

War es hilfreich?

Lösung

Ok, fand die Antwort. Ich habe versucht, etwas, das ich nicht funktionieren würde, dachte, aber zu meiner Überraschung war. Ich habe versucht, dies:

Criteria criteria = super.getSession().createCriteria(WipDiscreteJob.class);

criteria.addOrder(Order.asc("assnName.propertyName"))

aber was tatsächlich gearbeitet wurde:

Criteria criteria = super.getSession().createCriteria(WipDiscreteJob.class);
Criteria assnCrit = criteria.createCriteria("assnName");

assnCrit.addOrder(Order.asc("propertyName"));

Ich hatte die Annahme, dass die addOrder () -Methode nur verwendbar auf den wichtigsten Kriterien war und nicht auf irgendwelchen Verband Kriterien.

Andere Tipps

Ich habe das gleiche Problem und es kann auch wie folgt gelöst werden:

Criteria criteria = super.getSession().createCriteria(WipDiscreteJob.class)
  .createAlias("assnName","a")
  .addOrder(Order.asc("a.propertyName"));

Create können Sie Ihre Kriterien auf Ihrer ursprünglichen Einheit (WipDiscreteJob.class in diesem Fall) verwurzelt halten, so dass Sie Ihre Kriterien Aufbau im Falle halten Sie es benötigt wird (zum Beispiel, wenn Sie eine zweite Bestellung von Eigentum von Ihnen Original-Einheit).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top