grails - 如何根据某些关联获取对象?

标签 grails groovy grails-orm has-many

我有以下域类(仅试图展示获得想法所需的内容):

class Scholarship {

   static hasMany = [grades:Grade]
}

class Grade {

   String id
   String description
}

换句话说,我想“获得关联的grade_id = myId的所有奖学金”。我想使用 grails 域类而不是使用 sql 来完成此任务。任何帮助表示赞赏

最佳答案

您正在寻找这样的东西吗?...

def results = Scholarship.withCriteria {
    grades {
        // myId must be defined somewhere above...
        idEq myId
    }
}

编辑

下面的评论添加了原来的问题,并询问如果像这样表达另一种关系会怎样......

class Scholarship {
    static hasMany = [grades:Grade,majors:Major]     
}

我上面显示的查询仍然完全相同。除非您希望将 Major 的某些属性也包含在条件中,否则存在 majors 集合的事实并不相关,它可能看起来像这样。 ..

def results = Scholarship.withCriteria {
    grades {
        // myId must be defined somewhere above...
        idEq myId
    }

    majors {
        // only return Scholarship instances which
        // contain a Major with the name 'Mechanical Engineering'
        eq 'name', 'Mechanical Engineering'
    }
}

希望对您有所帮助。

关于grails - 如何根据某些关联获取对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26980460/

相关文章:

hibernate - 为什么Grails/Hibernate将我的列创建为Long类型?

grails - 如何更改 Grails 域类 ID 字段的名称?

Grails Spring Security 记住我

groovy - Gradle:用项目属性替换标记

java - 将二维以上的java数组视为列表

Jenkins Active Choices 插件输入文本框不返回任何内容。为什么?

grails - 将数据挖掘 SQL 查询转换为 Grails 等效项?

grails - 在 Grails/GORM 中定义默认排序顺序

grails - 如何更改grails中的主键列?

grails - 另一个grails urlmapping问题