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]
Czy jesteś pewien, że 'findAllBy' sortuje po limicie? Z jakiej bazy danych korzystasz? –
hmmm, napotkałem to w teście jednostkowym. może być błędem w nowej jednostce testującej bazy danych kpiące? – c089
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