gpt4 book ai didi

grails - 一对一求和

转载 作者:行者123 更新时间:2023-12-02 15:38:03 25 4
gpt4 key购买 nike

我认为非常微不足道的东西需要帮助。

class User {
String name
static hasMany = [files : File]
}

class File {
long size
}

现在,当我需要给定用户拥有的所有文件的总大小时,可以使用以下有效的方法:
def user = User.get(id)
user.files.each(total+=it.size)

但是它有多丑,当我确定它可以通过简单的选择和查询(使用普通SQL或GORM / CRITERIA)完成时

我已经尝试过类似File.sumBySize ..()

要么
def c = File.createCriteria()
def f = c.list{
eq("user", user) // What here ?
projections
{
sum("size")
}
}

我不知道如何指定在File类中没有定义但在Grails连接表中定义的parent(用户)关系

任何帮助表示赞赏

最佳答案

您可以使用HQL查询来完成此操作,但是“大小”字段的名称存在一个小问题
(似乎是保留字)。如果将其重命名为“length”,“fileSize”等,那么它将起作用:

User.executeQuery(
'select sum(file.length) from User u join u.files file where u.id=:userId',
[userId: id])[0]

关于grails - 一对一求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6945941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com