2012-09-18 4 views
4

내가 현재하고있는 중이 야 날짜별로 Grails의에서 컬렉션을 정렬 걸려 이제 끝났다에서 모음 다음 : 나는 목록에 더 많은 항목을 추가 한 때문에정렬 날짜

def pics = Picture.findAllByChild(child, [sort: 'dateCreated', order: 'desc']) 
pics.add(Post.findAllByPostedToAll(true)) 

내가 다시 정렬 할 필요가 dateCreated descending 정렬 클래스가이를 수행 할 수없는 것처럼 보입니다.

pics.sort(it.dateCreated) 

하지만이 sort 방법은 폐쇄 인수를

+1

"하지만 이것은 허용되지 않습니다"는 의미는 무엇입니까? 어떤 종류의 오류 메시지가 나타 납니까? 등등 – cdeszaq

답변

12

허용되지 않으므로 (암시 적 괄호로) 올바른 호출 변경할 수도 있습니다

pics.sort { it.dateCreated } 
+0

언급 된 방법에서 순서를 정의하는 방법이 있습니까? 'asc'또는 'desc'와 같은 연산자 – Visahan

+0

정렬 후에 .reverse() 함수를 사용하는 유일한 솔루션입니까? – Visahan

+1

@Visahan 클로저는 비교 자의 역할을 할 수 있으므로'{a, b -> b.dateCreated <=> a.dateCreated}'는 정렬을 되돌립니다. – doelleri

2

입니다 : 나는 시도 협회의 디폴트의 소트. 사진 도메인 클래스 추가에

는 :

static mapping = { 
    child(sort:'dateCreated', order:'desc') 
} 

이 많은 관계로 단방향 one 지원하지만, 양방향 사람을 위해 잘 작동되지 않습니다.