gpt4 book ai didi

grails - 如何与一对多关系进行grails findAllBy

转载 作者:行者123 更新时间:2023-12-02 15:30:19 24 4
gpt4 key购买 nike

我与用户和任务之间存在一对多的关系,并且想要获取该用户的所有任务,但是我的查询未返回任何结果。这是我所拥有的:

def getByStatus(String findBy) {
// either get by Open/Closed or by All.
def sortPref = [sort: "deadline", order: "asc"]
def u = User.get(session.user.id) // session.user is a user domain object

if (findBy != "All")
tasks = Task.findAllByUserAndStatus(u, findBy, sortPref)
else
tasks = Task.findAllByUser(u, sortPref)

}

我也尝试通过.findByUserIdAndStatus搜索,但收到一条错误消息,说明任务上没有UserId属性。如果删除用户部分,则可以完成所有任务。

最佳答案

假设延迟加载没有问题(假设每个用户的任务数量不是很高),则可以基于用户(从1:M关系)直接获取所需的任务,如下所示:

def getByStatus(String findBy) {
// either get by Open/Closed or by All.
def u = User.get(session.user.id) // session.user is a user domain object

def tasks = findBy == 'All' ? u.tasks.sort{it.deadline} :
u.tasks.findAll{it.status == findBy}.sort{it.deadline}
}

如果有兴趣,可以在域类的映射中设置 sort

关于grails - 如何与一对多关系进行grails findAllBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20669893/

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