【问题标题】:Grails Domain HQL QueryGrails 域 HQL 查询
【发布时间】:2015-01-18 11:09:01
【问题描述】:

我有一个名为 A 的 grails 域。如下所示

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

B类如下

Class B {
    Integer a;
    Integer b;
}

我需要通过 a 类的 x 值找出 a*b 组的总和。例如 A 类的行的值 x = 5, 6, 5;和一些项目列表。

我需要两行,我可以在其中找到所有按 x 表示的项目总和 5 和 6.... 我该怎么做。提前谢谢..

*我需要使用像这样的单个执行查询来执行此操作 "select count(o.id), sum(o.items.a * o.items.b) from A as o group by ax" 有什么办法可以做到这样......*

【问题讨论】:

    标签: grails hql


    【解决方案1】:

    试试这个:

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

    【讨论】:

    • 我需要像这样使用单个查询。 "select count(a.id), sum(i.a * i.b) from A as a group by a.x" 有什么办法可以像这样...????
    • 如果你需要使用选择阶段,你需要有withCriteria而不是HQL
    【解决方案2】:

    如果可行,请尝试这样做:

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

    【讨论】:

      猜你喜欢
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      相关资源
      最近更新 更多