Grails在超类上创建了createCriteria,子类上有条件

Grails在超类上创建了createCriteria,子类上有条件,grails,gorm,createcriteria,Grails,Gorm,Createcriteria,我一直在努力。但我不知道这是否可能。我需要通过在超类上编写一个crieria查询并在子类上设置条件来列出记录 比如说,猫、狗扩展了动物的种类。我需要列出所有的动物,除了有黑点的狗和白色的猫。这里的关键问题是,dog的属性不在cat域类中 但是我必须在Animal类上编写createCriteria,这样我就可以对所有动物进行分页,还是遗漏了什么?如果您使用tablePerHierarchy=true,那么您应该能够编写一个本机SQL查询,通过指向部分空列的where子句从表中选择记录: Anum

我一直在努力。但我不知道这是否可能。我需要通过在超类上编写一个crieria查询并在子类上设置条件来列出记录

比如说,猫、狗扩展了动物的种类。我需要列出所有的动物,除了有黑点的狗和白色的猫。这里的关键问题是,dog的属性不在cat域类中

但是我必须在Animal类上编写createCriteria,这样我就可以对所有动物进行分页,还是遗漏了什么?

如果您使用tablePerHierarchy=true,那么您应该能够编写一个本机SQL查询,通过指向部分空列的where子句从表中选择记录:

Anumal.withCriteria{
  or{
    sqlRestriction "dots is not null and dots != 'black'" // dogs
    sqlRestriction "color = 'white'" // cats
  }
}

如果out tablePerHierarchy=true,是否不可能,因为子类中的某些属性需要为null