Я работаю в Граалей 2.3.8Обновление Grails домена don'tpersist
Мы следующие классы домена:
abstract class GroupItem {
static belongsTo = [group:AppGroup]
static mapping = {
tablePerHierarchy = false
}
}
class MyDomain extends GroupItem {
String name
String type
int Identifier
static hasMany = [attributes:Attribute]
static mapping = {
attributes cascade: 'all-delete-orphan'
}
}
class Attribute {
String name
String value
static belongsTo = [myDomain:MyDomain]
}
В методе «обновление» моего контроллера я пытаюсь обновить Объект «MyDomain». Я могу обновлять атрибуты, которые связывают с доменом fine, однако, когда я пытаюсь изменить любые свойства самого экземпляра (имя, идентификатор или тип), изменения не сохраняются. Код контроллера:
def update(Long id) {
---
def myDomain = MyDomain.get(id)
myDomain.type = 'DIFFERENT TYPE'
myDomain.save(flush:true, failOnError:true)
}
Однако сигнал в базе данных по-прежнему имеет тот же тип, что и при его создании. Чтобы попытаться следовать логике, я добавил метод beforeUpdate для класса домена, который выводит этот тип, и я вижу, что он вызван, и в beforeUpdate он считает, что этот тип является моим новым значением, однако обновление никогда не сохраняется. Исключений нет, проверяются объекты и ничего в журналах. Есть ли какая-нибудь подсказка, что может быть причиной этого?
Cheers!
Некоторые ошибки? если нет, попробуйте beforeInsert() вместо beforeUpdate() – Koloritnij
Нет ошибок. Просто попробовал проверить, и кажется, что объект не грязный. – DJOodle