Как вы разрешаете изменять значения столбцов ID во время выполнения в Grails 3?В моем случае у меня есть таблица с составным первичным ключом, состоящим из трех столбцов.Я вручную указал их для отображения в режиме редактирования, и мой код метода update()
выглядит следующим образом:
@Transactional
def update(AliasFrequencyDict aliasFrequencyDict) {
aliasFrequencyDict = AliasFrequencyDict.get( new AliasFrequencyDict(params) )
if (aliasFrequencyDict == null) {
notFound()
return
}
aliasFrequencyDict.properties = params
try {
aliasFrequencyDict.save(insert: false, flush: true)
} catch (ValidationException e) {
respond aliasFrequencyDict.errors, view:'edit'
return
}
request.withFormat {
form multipartForm {
flash.message = message(code: 'default.updated.message', args: [message(code: 'aliasFrequencyDict.label', default: 'AliasFrequencyDict'), aliasFrequencyDict.getPK()])
redirect(action: 'show', params: params)
}
'*'{ respond aliasFrequencyDict, [status: OK] }
}
}
... и когда я перехожу в представление редактирования и редактирую свойство, не являющееся частью ключа, он сохраняется правильно, но как только я изменяю один из них, я получаю сообщение о том, что Grails не может найти экземпляр AliasFreuqencyDict с идентификатором null.Я предполагаю, что проблема в том, что, как только вы меняете один из таких столбцов, идентификатор тоже меняется, и Grails почему-то не знает, как переключиться с первичного ключа, который был у объекта, на новые.
Как мне изменить контроллер так, чтобы он также позволял редактировать столбцы части ключа?