Grails,如何通过其外键记录查找

jas*_*son 6 grails hibernate grails-controller grails-domain-class

我有两个域是一对多关系的一部分.我想知道如何向孩子询问父母FK?bellow是父/子的伪代码

家长:

    class AlumProfile    {
String firstName
String lastName
    static hasMany = [alumLanguage  : AlumLanguage]


static mapping = {
    cache true
    id generator: 'assigned'

    columns {
        firstName   type:'text'
        lastName    type:'text'
    }

    //
}
static constraints = {
    firstName   (nullable:true)
    lastName    (nullable:true)
    }

    }
Run Code Online (Sandbox Code Playgroud)

儿童:

 class AlumLanguage {
String name
String level

static belongsTo = [alumProfile:AlumProfile]
static mapping = {
    cache true

    columns {
        name type:'text'
        level type:'text'
    }
}
static constraints = {
    name(nullable:true)
    level(nullable:true)
}
  }
Run Code Online (Sandbox Code Playgroud)

虽然我没有明确创建FK,但grails会自己创建MySQL DB.但是,当我想通过FK查询孩子时:

  if(AlumLanguage.findByNameAndAlumProfileId(language.'language'.toString(), 'jIi-hRi4cI')==null){
        //do something
 }  
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:找不到类[alumProfileId]的类[class mgr.AlumLanguage]的属性

有关如何实现这一目标的任何建议?

谢谢杰森

Rob*_*ska 7

尝试使用标准:

def c = AlumLanguage.createCriteria()
def languages = c.get {
    eq('name', 'whatever-language')
    alumProfile {
        eq('id', 'jIi-hRi4cI')
    }
}
Run Code Online (Sandbox Code Playgroud)