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