Вы можете иметь 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]
}
Технически я считаю, что если вы используете «класс» в качестве имени столбца дискриминатора и имена классов в качестве значений, вам не нужны строки «дискриминатора».