2010-05-06 13 views

risposta

2

lavorare in Grails 1.2.1

def c = C.createCriteria() 
def pl = c.list { 
    projections { 
     countDistinct 'id', 'myCount' 
     groupProperty 'a' 
    } 
    order ('myCount', 'desc') 
} 

la risposta è per esempio

[[10,a3],[2,a1],[1,a2]] 
2

Vorrei provare

def c = b.createCriteria() 
def results = c { 
    projections { 
     groupProperty("a") 
     rowCount() 
    } 
    order("a") 
} 

notare che questo è non testati.

+0

Questo risolve quasi il problema, ma come faccio a ordinare per conteggio? – skurt

9

Dal momento che grails 1.2 è possibile creare alias e ordinare per l'alias creato.

Vedere https://cvs.codehaus.org/browse/GRAILS-3875 e https://cvs.codehaus.org/browse/GRAILS-3655 per ulteriori dettagli.

Applicato il proprio codice, la query HQL sarebbe:

def c = b.createCriteria() 
def results = c { 
    projections { 
    groupProperty("a") 
    count("a", 'myCount') //Implicit alias is created here ! 
    } 
    order 'myCount' 
} 
+0

Grazie, dovrebbe farlo, ma come nota Graeme, questo viene spostato in grails 1.3 vedere https://cvs.codehaus.org/browse/GRAILS-3875?focusedCommentId=200866&page=com.atlassian.jira.plugin.system.issuetabpanels % 3Acomment-tabpanel # action_200866 – skurt

+0

Hai decisamente ragione! Vedi http://www.grails.org/1.3-RC2+Release+Notes e sezione e sembra che non sia implementato in 1.3 (considerando che il problema con la risoluzione è uguale a fisso e Graeme sta commentando che il codice è stato modificato). Quindi penso che devi provare :-) (Tienici informati sui risultati) – fabien7474

+0

count ("a", "myCount") –

Problemi correlati