Я хочу создать общий код для обновления объектов. Вот что я придумал:Почему идентификатор объекта увеличивается после слияния? [Grails]
def update(id, Object updatedEntity) {
def entity = findById(id)
if (entity) {
updatedEntity.id = id
def mergedEntity = updatedEntity.merge()
if (mergedEntity) {
return mergedEntity
} else {
throw new ValidationException("Cannot update.", mergedEntity.errors)
}
} else {
throw new IllegalArgumentException("No ${domainClass.getSimpleName()} with id=${id} found.")
}
}
Почему mergedEntity
всегда увеличивается id
значение (я имею в виду, если updatedEntity.id = 1
, то mergedEntity.id
будет 2. А как я могу это исправить
ОбновленEntity отдельный объект? Я думаю, вам нужно прочитать, на что действительно используется слияние. http://grails.org/doc/latest/ref/Domain%20Classes/merge.html – Gregg
Grails - это динамический язык и уже имеет множество встроенных «общих кодов» для обработки таких вещей. Не могли бы вы объяснить, что вы пытаетесь сделать и почему? –
@Gregg: yes, updatedEntity отсоединен. – Roman