2014-05-22 1 views
-1

데이터베이스의 사용자 객체에서 알파벳 순으로 정렬 된 사용자 이름 목록을 작성하려고합니다. list()의 모든 다른 방식은 전체 User 객체 만 반환한다는 것을 발견했습니다. 각 사용자의 속성 인 사용자 이름이 필요합니다. gsp에이 목록을 공급해야합니다 : 내 gsp의 풀다운 목록을 선택하십시오. 코드를 함께 넣을 수는 없습니다. 나는 Mongodb를 사용하고있다. 그러나 그것은 정말로 중요하지 않다. 내 알고리즘은 다음과 같습니다.Grails가 데이터베이스에서 사용자 이름 목록을 작성합니다.

사용자 컬렉션을 반복하고 각각에 대해 사용자 이름 속성을 가져옵니다. 선택 목록

어쩌면 뭔가

list userList = User.list() 
list usernameList 

usernameList << a groovy loop to collect it.username(s) 

같은 다음 순으로 정렬 usernameList 다음은 g을 공급 : 선택 는이 g에 공급 알파벳 순으로 정렬 한 후 목록에 모든 사용자 이름을 수집합니다. 짧은 방법을 여기 userlist = User.list().collect{it.username}.sort(java.text.Collator.instance)

+0

수집 방법을 사용할 수 있습니다 - 참조 http://groovy.codehaus.org/groovy-jdk/java/util/Collection.html을 # collect % 28groovy.lang.Closure % 29 – lukelazarovic

답변

1

좋아 선택입니다 :

userlist = User.list() 
    def userlist2 = [] 
    userlist.each { userlist2 << it.username } 
    userlist2.sort() 
    userlist = userlist2 

당신이이 g로 공급해야하기 이제 사용자 목록이 준비를 :

+1

이 작업은 가능하지만 데이터베이스에서 모든 필드를 검색 한 다음 필터링하여 많은 것을 사용하지는 않는다. 큰 응용 프로그램에서는이 문제로 인해 성능 문제. – luisZavaleta

0

여기에 그것을 할 한 가지 가능한 방법 내 솔루션입니다

def usersList = User.list().username.sort() 
+1

이 방법은 필요한 것보다 길다. – lukelazarovic

관련 문제