Отношения ноль-ко-многим с Граалем? - PullRequest
1 голос
/ 14 июля 2011

У меня есть класс тРНК, который может иметь или не иметь ассоциированную grRNA, но будет связан с кРНК.

Так что я могу иметь эти отношения:
тРНК -> грРНК -> кРНК

Или это отношение (в этом случае у нас нет данных grRNA):
тРНК -> кРНК

Каков наилучший способ реализации этих отношений (иногда мы не имеем grRNA) через Grails / Gorm? Лучший дизайн класса домена?

1 Ответ

1 голос
/ 14 июля 2011

Вы можете иметь grRNA и кРНК быть подклассами родителя, с тРНК, имеющей ассоциацию с родителем, и grRN, ассоциирующейся с кРНК.

В таблицах вашей базы данных вам потребуется столбец class для определения класса (discriminator в объекте GORM).

Редактировать : Что-то вроде:

class GenericRna {
    //Properties
    //Assuming this is mapped to a database table as well, you'd need:
    static mapping = {
        table 'generic_rna'
        discriminator column: 'class'
    }
}

class CRna extends GenericRna {
    //Properties
    discriminator value: 'CRna'
}

class GrRna extends GenericRna {
    //Properties
    static hasMany = [cRnas: CRna]
    discriminator value: 'GrRna'
}

class TRna {
    static hasMany = [genericRnas: GenericRna]
}

Технически я считаю, что если вы используете «класс» в качестве имени столбца дискриминатора и имена классов в качестве значений, вам не нужны строки «дискриминатора».

...