В модели домена моего приложения Grails 2.5.0 у меня есть два класса Income
и Benefit
, которые имеют одинаковые свойства. Я хотел бы сохранить их в отдельных таблицах базы данных, но переместить общие поля в базовый класс. Модель, которую я придумал, это:
class Assessment {
Date dateCreated = new Date()
User user
static hasMany = [incomes: Income, benefits: Benefit]
}
class Benefit extends IncomeSource {}
class Income extends IncomeSource {}
abstract class IncomeSource {
String name
BigDecimal amount
PaymentFrequency frequency
static belongsTo = [assessment: Assessment]
static mapping = {
tablePerHierarchy false
}
}
Это приводит к созданию следующих таблиц для отношения между Assessment
и Benefit
Таблицы, созданные для отношения между Assessment
и Benefit
, являются (неудивительно) идентичными.
Вместо того, чтобы иметь таблицу assessment_benefit
join между Assessment
и Benefit
, я бы предпочел иметь внешний ключ assessment_id
в таблице Benefit
, тем самым устраняя необходимость в таблице соединений.
Как я могу изменить мою модель домена, чтобы достичь этого?