gpt4 book ai didi

grails - 如何使用命名查询将Grails上的嵌套属性与嵌套范围的 “outside”中的属性进行比较?

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

我有一种情况,我需要根据对象的日期来验证嵌套对象的日期范围。

因此,假设我有一个名为:

Course{
Date date
Teacher teacher
}

Teacher{
Date effectiveDate
Date terminationDate
}

我需要做的是一个带有另一个类的投影的查询,并且需要在查询中验证日期,如下所示:
le 'effectiveDate', date
or {
ge 'terminationDate', date
isNull 'terminationDate'
}

问题是我不能使用日期,因为在命名查询中我没有该对象的实例。如何比较该日期的嵌套对象属性?

最佳答案

我认为您想要使用createAlias。不幸的是,createAlias不适用于Spock单元测试,因此我无法创建测试以查看其是否有效,并且我现在没有时间创建一个应用程序来对此进行测试,因此这主要是猜测。

您的命名查询应如下所示:


findCoursesWithActiveTeacher { ->
createAlias 'teacher', 't'
geProperty 'date', 't.effectiveDate'
or {
leProperty 'date', 't.terminationDate'
isNull 't.terminationDate'
}
}

我认为我正确地进行了大于或小于然后进行比较。希望我们很幸运,这对您有用。

关于grails - 如何使用命名查询将Grails上的嵌套属性与嵌套范围的 “outside”中的属性进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40517246/

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