2012-02-14 8 views
5

Poniższy grails zapytanie będzie ograniczyć liczbę wyników do 3, a następnie posortować te przez ID:W GORM findBy * zapytania, w jaki sposób mogę korzystać z „sort” przed ograniczeniem przy użyciu „max”

def results = Domain.findAllByFoo(foo, [sort: 'id', order: 'desc', max: 3])

więc będzie to powrót ID 1 do 3, a następnie odwrócić ich kolejność, tak że

results*.id == [3,2,1]

Czy istnieje sposób aby posortować po pierwsze, a po limitu, tak że

results*.id == [99,98,97]

Moje bieżące obejście jest taka:

if (results.size() > max) results = results[0..<max]

+0

Czy jesteś pewien, że 'findAllBy' sortuje po limicie? Z jakiej bazy danych korzystasz? –

+0

hmmm, napotkałem to w teście jednostkowym. może być błędem w nowej jednostce testującej bazy danych kpiące? – c089

+0

Czy możesz podać sql wygenerowany przez ten HQL? Używamy podobnego hql w naszym projekcie i działa dobrze. BTW - Napisaliśmy przypadek testowy integracji, aby przetestować tę funkcjonalność – Saurabh

Odpowiedz

Powiązane problemy