2015-01-18 4 views
0

У меня есть домен Grails с именем А. Как следующийGrails домена HQL Query

Class A { 
    Integer x; 
    Collection<B> items 
} 

и класса В, например, следующие

Class B { 
    Integer a; 
    Integer b; 
} 

Мне нужно узнать сумму A * B группы по значению x класса a. Для примера А класс имеет строки, имеющие значения х = 5, 6, 5; и некоторый список предметов.

Мне нужно два ряда, где я могу найти всю сумму элементов группы x средствами 5 и 6 .... Как это сделать. Заранее спасибо.

* Мне нужно сделать это с помощью одного исполняемого запроса "select count (o.id), sum (o.items.a * o.items.b) from A as o group топор» есть ли способ, я могу сделать это так .... *

ответ

0

попробовать это:

def query = "FROM B AS b HAVING SUM(t.a * t.b) NOT NULL" 
def result = A.findAll(query) 
+0

мне нужно использовать один такой запрос. «select count (a.id), sum (i.a * i.b) от A как группа по a.x« есть ли способ, который я могу сделать так: ???? – Sadlil

+0

, если вам нужно использовать фазу выбора, вам нужно иметь 'withCriteria', а не HQL – roeygol

+0

thnx в любом случае. но это будет более полезно, если вы покажете мне пример ... – Sadlil

0

Попробуйте это, если эта работа:

def aList = A.createCriteria() 
def result = aList.list() { 
    projections { 
     sum('a * b') != null 
    } 
}