我有以下域类:

class PreparedToWork {

    String location
    static hasMany = [assessors: Assessor]
}

class Assessor {

    //Some Properties

    static belongsTo = [PreparedToWork]
    static hasMany = [preparedToWork: PreparedToWork]
}

我想使用仅准备工作ID来检索准备在某个位置工作的所有评估员。我在实际数据库中有我的联接表,所以我确定这种关系很好,但是尝试了各种查询选项,但失败了。

应用信息:
  • Grails版本:3.1.8
  • Groovy版本:2.4.6
  • JVM版本:1.8.0_60
  • 最佳答案

    我认为以下是描述您域的更自然的方法

    class Location {
    
        String name
        static hasMany = [preparedToWork: Assessor]
    }
    
    class Assessor {
        //Some Properties
    
        static belongsTo = [Location]
        static hasMany = [preparedToWork: Location]
    }
    

    然后,您可以检索准备在某个位置工作的所有评估员,
    Assessor.executeQuery(
        "from Assessor a join a.preparedToWork l where l.id = ?", [locationId])
    

    关于hibernate - 如何在Grails中查询多对多关系?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38594726/

    10-11 07:11