Grails中的继承域类

时间:2010-05-28 09:35:40

标签: grails

我如何获得特定类的集合?

我使用继承:On Planet live Human。人类正在分裂为男人和女人。

class Planet{
   String name
   static hasMany = [ humans : Human ]
}

class Human{
    String name
    static belongsTo = [Planet]
}

class Man extends Human{
     int countOfCar
}

class Woman extends Human{
     int coutOfChildren  
}

现在只需要获取男人收藏或女人收藏:

让地球上的所有人类变得简单

all = Planet.get(1).humans

但是我只能得到女人或男人? womenLivedOnMars = Planet.get(1)。 getOnlyWoman
menLivedOnJupiter = Planet.get(2)。 getOnlyMan

感谢您的帮助 汤姆

2 个答案:

答案 0 :(得分:2)

一个简单的选择可能是:

Man.findAllByPlanet(Planet.get(1))

答案 1 :(得分:2)

据我所知,你可以这样做:

class Human{
    String name
    static belongsTo = [planet: Planet]
}


womanLivedOnMars = Woman.findAllByPlanet(Planet.findByName('Mars'))

menLivedOnJupiter = Men.withCriteria {
    planet {
        eq('name','Mars')
    }
}