Что ж, если у вас может быть только один Cargo на Load (в соответствии с вашим примером), вы захотите добавить свойство cost
к Load .Затем вам нужно будет скопировать стоимость во время создания объектов.Вы можете сделать это с помощью перегруженного метода в объекте Load или просто написать свой собственный метод для добавления Cargo к Load .
Если вам действительно нужно несколько грузов на нагрузку , то вам понадобится промежуточный объект для представления соединения.Этот объект будет хранить цену в то время, когда они были связаны.Это может выглядеть так:
class Load {
LoadCargo loadCargo
}
class LoadCargo {
Cargo cargo
BigDecimal cost
}
class Cargo {
String name
BigDecimal cost
}
Конечно, ваша объектная модель будет немного сложнее из-за косвенной связи с Cargo.
Редактировать Другой способЧтобы справиться с множественной ситуацией, нужно дублировать Cargo каждый раз, когда стоимость обновляется.Это может быть более эффективным, если вы ожидаете, что cost
будет в основном статическим.Я бы справился с этим, добавив поле для «отключения» элементов, например:
class Cargo {
String name
BigDecimal cost
boolean active = true
}
Я полагаю, вы можете просто клонировать груз при обновлении следующим образом:
oldCargo = Cargo.get(params.id)
newCargo = new Cargo()
newCargo.properties = oldCargo.properties
// now set the new cost, etc.
newCargo.save()
oldCargo.active = false
oldCargo.save()
просто предположение, вероятно, он сломан.