【问题标题】:Grails GORM: list all with nested propertyGrails GORM:列出所有嵌套属性
【发布时间】:2013-01-14 17:51:36
【问题描述】:

我的(简化的)域模型如下所示:

class Student { 
    static hasMany = [professions:StudentProfession];
}

class StudentProfession { 
    static belongsTo = [student:Student];
    Profession profession;
}

class Profession { 
    String name;
}

什么是最有效的方法:

列出所有学习“程序员”和“经理”专业的学生

查询数据库后是否强制过滤掉?

students = students.findAll { student -> 
    student.professions.find { professionNames.contains(it.profession.name) } != null
}

【问题讨论】:

    标签: grails groovy grails-orm


    【解决方案1】:

    您可以使用 GORM 查询来做到这一点:

    def studends = Student.where {
      professions {
          profession.name == "Programmer" || profession.name == "Manager"
      }
    }
    

    【讨论】:

      【解决方案2】:

      给这只猫剥皮的方法有很多 - 这里有一个:

      StudentProfession.findAllByProfessionInList(Profession.findAllByNameInList(["Programmer","Manager"])*.student.unique()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-23
        • 1970-01-01
        • 2013-12-07
        • 1970-01-01
        • 2020-10-07
        • 2016-03-18
        • 1970-01-01
        相关资源
        最近更新 更多