2010-05-28 136 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') 
    } 
}