gpt4 book ai didi

grails - 在这种情况下,findAllBy *如何工作?

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

我有两个域类:

日时间表

class DaySchedule {
Date Todaysdate
String startTime;
String endTime;
String task
int priority
boolean completed
static belongsTo = [ schedule : Schedule ]
}

排程:
class Schedule {
Date date;
static belongsTo = [ user : User ]
static hasMany = [ daySchedules : DaySchedule ]
static constraints = {
date(blank:false)
}
String toString() {
"Belongs to schedule"
}
}

现在,当我使用 DaySchedule查询 findAllByTaskIsNotNull()类时,我希望它返回 task上的所有 DaySchedule,但是我将 "Belongs to schedule"作为查询结果。像这样
def allTasks = DaySchedule.findAllByTaskIsNotNull()
//returns "Belongs to schedule"

如果我更进一步,查询 allTasks,我将按预期获得所有 task。像这样 :
def expected = allTasks.task
println expected //prints all tasks!

我无法理解 findAllByTaskIsNotNull()的行为。所以我的实际问题是 findAllByTaskIsNotNull()应该返回所有 task,对吧?为什么找到合适的 Schedule?这是怎么回事?我对这个概念有误吗?

提前致谢。

最佳答案

我认为您确实错误地理解了这个概念。
动态查找器检索被调用的类的对象或对象列表。

因此,在您的示例中,DaySchedule.findAllByTaskIsNotNull()将检索“DaySchedule”类型的对象。

“任务”只是DaySchedule类的String属性,并且您在Schedule类中定义了一个toString方法,该方法返回“Belongs to schedule” ...因此当您在结果上调用println时将打印该内容,因为该类实际上是属于DaySchedule,并且在DaySchedule类上没有toString方法。

因此,如果要改为显示task属性,只需将其添加到DaySchedule类中:

String toString() {
return this.task
}

关于grails - 在这种情况下,findAllBy *如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8542941/

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