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

时间:2013-11-04 15:49:49

标签: grails inheritance criteria

我有以下域类

class Session{

   static hasMany=[lessons:Lesson]
}

class BasicSession extends Session{

    }
class AdvancedSession extends Session{

}

知道Lesson也是一个域类:

class Lesson {
   static belongsTo=[session:Session]
}

检索属于会话subclassBasicSessionAdvancedSession)的所有课程的标准是什么

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

// lessons belong only to AdvancedSession 

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

    }

1 个答案:

答案 0 :(得分:5)

在咨询this Issue之后,解决方案就像我所说的那样,但不是String类型,而是使用Class类型。

这意味着:

eq('class',slm.abdennour.AdvancedSession)

而不是

eq('class','slm.abdennour.AdvancedSession')