Używam Grails 1.2.4. Chciałbym wiedzieć, w jaki sposób mogę sortować według "countDistinct" (malejąco) i groupProperty wewnątrz prognoz.Używanie groupProperty i countDistinct w Grails Criteria
Oto moje domeny:
class Transaction {
static belongsTo = [ customer : Customer, product : Product ]
Date transactionDate = new Date()
static constraints = {
transactionDate(blank:false)
}
}
class Product {
String productCode
static constraints = {
productCode(blank:false)
}
}
Pod względem MySQL, to jest to, co chcę:
select
product_id,
count(product_id)
from
transaction
group by
product_id
order by
count(product_id) desc
W ogólnym ujęciu, chciałbym, aby otrzymać listę produktów (lub po prostu produkt id) posortowana według liczby transakcji produkt mieli (malejąco)
to jest moje przypuszczenie:
def c = Transaction.createCriteria() def transactions = c.list {
projections {
groupProperty("product")
countDistinct("product")
}
maxResults(pageBlock)
firstResult(pageIndex) }
def products = transactions.collect { it[0] }
Ale to nie daje oczekiwanych rezultatów. Jakakolwiek przewaga w tym będzie bardzo ceniona. Dzięki!
dzięki! zadziałało. jednak nie wspomniałeś, jak sortować według "count (product_id) desc" w createCriteria – firnnauriel