2010-05-28 84 views
2

如何获取特定类的集合?Grails中的继承域类

我用inheriance: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 
} 

现在NEET只得到收集女人的男人或收藏的:

让所有的人在这个星球是简单

all = Planet.get(1).humans 

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

感谢您的帮助
汤姆

回答

2

一个简单的选择可能是:

Man.findAllByPlanet(Planet.get(1)) 
2

据我知道你能做到这些的方法:

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


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

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