Grails 表或列表中的附加列

发布于 2024-10-08 06:59:40 字数 822 浏览 5 评论 0原文

我花了几天时间尝试从我的数据中接收列表。域看起来像这样:

class Alpha {    
    String a
    String b
    etc.
    static hasMany = [beta:Beta]

}

class Beta {
    String a
    Integer foo
    String status
    static belongsTo = [alpha:Alpha]
    static constraints = {
        status(nullable:false, inList:["val1","val2","val3", "val4"])
    }
}

我希望在 Alpha 中拥有所有 Beta.foo 和处于某种状态的所有 Beta.foo 的总和。最好是附加行(Integer sumVal1 ...)。

我尝试了命名查询:

static namedQueries = {
        erledigterProbeAufwend {
            createAlias ('Beta', 'b')
            eq ('b.status', 'val1')
            projections {
                groupProperty('b.alpha')
                sum('b.foo', 'sumFooVal1')
            }
        }
}

但这一次只给我一笔钱。

我期待着在这方面获得一些帮助。

问候 巴斯

I'm trying for several days to receive a list from my Data. The Domain looks like this:

class Alpha {    
    String a
    String b
    etc.
    static hasMany = [beta:Beta]

}

class Beta {
    String a
    Integer foo
    String status
    static belongsTo = [alpha:Alpha]
    static constraints = {
        status(nullable:false, inList:["val1","val2","val3", "val4"])
    }
}

I'd like to have in Alpha the sum of all Beta.foo and of all Beta.foo in a certain status. Best would be something like an additional row ( Integer sumVal1 ... ).

I tried named queries:

static namedQueries = {
        erledigterProbeAufwend {
            createAlias ('Beta', 'b')
            eq ('b.status', 'val1')
            projections {
                groupProperty('b.alpha')
                sum('b.foo', 'sumFooVal1')
            }
        }
}

But this just give me one sum at a time.

I'm looking forward to get some help on that.

Greetings
Bas

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

菊凝晚露 2024-10-15 06:59:40

这可以计算 公式字段,但带有 子查询技巧

static mapping = {
    betaCount formula: "(SELECT count(*) FROM Beta b WHERE b.alpha_id = id and b.status in('a', 'b'))"
}

This could be calculated formula field, but with a subquery trick:

static mapping = {
    betaCount formula: "(SELECT count(*) FROM Beta b WHERE b.alpha_id = id and b.status in('a', 'b'))"
}
黑白记忆 2024-10-15 06:59:40

在 Alpha 类中创建瞬态变量并将它们填充到 onLoad 事件中。

class Alpha {    
    String a
    String b
    etc.
    static transients = ["sumVal1",...]
    static hasMany = [beta:Beta]

    def onLoad = {
       sumVal1 = ....
    }    

}

Create transient variables in your Alpha class and populate them in an onLoad event.

class Alpha {    
    String a
    String b
    etc.
    static transients = ["sumVal1",...]
    static hasMany = [beta:Beta]

    def onLoad = {
       sumVal1 = ....
    }    

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文