过滤由域类中超类声明的字段的子类的标准

Abd*_*UMI 4 grails inheritance criteria

我有以下域类

class Session{

   static hasMany=[lessons:Lesson]
}

class BasicSession extends Session{

    }
class AdvancedSession extends Session{

}
Run Code Online (Sandbox Code Playgroud)

知道Lesson也是一个域类:

class Lesson {
   static belongsTo=[session:Session]
}
Run Code Online (Sandbox Code Playgroud)

检索属于Session subclass(BasicSessionAdvancedSession)的所有课程的标准是什么

如果我想解释一下我的意思,我可以写:

// lessons belong only to AdvancedSession 

    Lesson.createCriteria().list{
           session{
               eq('class','slm.abdennour.AdvancedSession') // !!!
            }       

    }
Run Code Online (Sandbox Code Playgroud)

Abd*_*UMI 5

在咨询了 这个问题之后,解决方案正如我所说的那样,但是,不是String类型,而是使用Class类型.

这意味着:

eq('class',slm.abdennour.AdvancedSession)
Run Code Online (Sandbox Code Playgroud)

并不是

eq('class','slm.abdennour.AdvancedSession')
Run Code Online (Sandbox Code Playgroud)