2016-03-21 5 views
0

Verwenden Sie Hibernate-Kriterien zum Abrufen von Daten aus der Datenbank. Jetzt muss ich Daten auf title und createdDate Basis holen, denn das i hinzugefügtRuhezustand Kriterien Reihenfolge funktioniert nicht

if(condition){ 
criteria.addOrder(Order.asc("title")); 
}else{ 
criteria.addOrder(Order.asc("createdDate")); 
} 

Das Problem ist, seine Arbeits für createdDate aber nicht für title

Iam das Ergebnis als TEST,d1,ga,new,pre,ss,t bekommen, die wie d1,ga,new,pre,t,TEST sein sollte

UPDATE: Das Problem ist mit Fall, als ich TEST änderte, um zu prüfen, dass es als richtig kommt.

+0

Ich denke, dass Sie das nicht mit Order verwenden können. Beim Sortieren von Strings werden Großbuchstaben vor Kleinbuchstaben sortiert, da die Zeichen kleiner sind. Vielleicht musst du deinen eigenen Komparator erstellen. – RubioRic

+1

Down Voting Menschen zeigen zumindest die Manieren, um das Problem zu erklären .. –

Antwort

1

Versuchen Sie mit criteria.addOrder (Order.asc ("title"). IgnoreCase());

+0

Ja, ich fand das Problem mit dem Fall ist. Aber das hat nicht für mich funktioniert. was ist zu tun? –

+0

das ist komisch. Können Sie Ihre Frage mit Ihrer Hibernate-Entität aktualisieren? –

Verwandte Themen