2010-04-26 46 views
2

我有這樣的關係:如何實現「SELECT SUM()」中的Grails

class E { 
    string name 
    hasMany = [me:ME] 
} 

class M { 
    float price 
} 

class ME { 
E e 
M m 
int quantity 
} 

而且我討厭重複,以實現這一點:「獲得ME數量的總和倍給定E的相應M的價格「。

有關如何使用GORM/HQL實現它的任何提示?

在此先感謝

回答

8

沒有測試過這一點,但它應該是接近,如果它不開箱的工作:

def givenE = // the E we're looking for 
def sum = ME.executeQuery("select sum(m.price) from ME as me join me.m as m where me.e = :e", [e: givenE]) 
println sum 
+6

這是非常接近的,但'的executeQuery()'實際上返回一個列表/數組作爲第一個元素。所以它是'def sum = ME.executeQuery(「...」)[0]'。 – aroth 2013-03-21 23:19:07