Классы наследования доменов в Grails - PullRequest
2 голосов
/ 28 мая 2010

как я могу получить коллекцию определенного класса?

Я использую наследство: на планете живи человек. Люди делятся на мужчин и женщин.

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 ]

2 голосов
/ 28 мая 2010

Насколько я знаю, вы можете сделать это следующими способами:

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


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

menLivedOnJupiter = Men.withCriteria {
    planet {
        eq('name','Mars')
    }
}
2 голосов
/ 28 мая 2010

Простой вариант может быть:

Man.findAllByPlanet(Planet.get(1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...