У меня есть два следующих домена:
User {
UserData userData
}
UserData {
static belongsTo = [user: User]
}
и в какой-то момент я хочу объединить двух пользователей в один.Я имею в виду удалить один экземпляр User и прикрепить userData к другому пользователю.
Я пробовал:
User zombieUser
User liveUser
UserData data = zombieUser.userData
zombieUser.delete()
liveUser.userData = data
userData.user = liveUser
userData.save()
liveUser.save()
На самом деле я пробовал разные варианты, в другом порядке, кажется, что все возможные способы,Но это всегда терпит неудачу за исключением.Текущий код не будет работать с:
deleted object would be re-saved by cascade (remove deleted object from associations): [UserData#1]
Если я поставил zombie.delete()
на дно, после *.save()
я получу:
Field error in object 'User' on field 'userData': rejected value [UserData : 1]; codes ... default message [Property [{0}] of class [{1}] with value [{2}] must be unique]
Есть ли способ переподключиться?существующий объект от одного объекта к другому?
Рабочий код:
UserData userData = zombieUser.userData
userData.user = null
zombieUser.userData = null
zombieUser.save(flush: true)
userData.save()
liveUser.userData = userData
userData.user = liveUser
liveUser.save()
userDate.save(flush: true)