В Grails возможно ли изменить подтип персистентного объекта?

Скажем, у меня есть следующие классы:

class Fruit { ... }
class Apple extends Fruit { ... }
class Orange extends Fruit { ... }

Допустим, пользователь хочет создать новый Apple, Они выбирают тип из выпадающего списка, и я использую сервис для перевода строки типа в конкретный тип:

def fruit = FruitService.createFruit(params.type)
fruit.properties = params
fruit.save()

Это успешно сохранит новый Apple пример.

Теперь предположим, что пользователь понял, что он допустил ошибку и что он хотел создать Orange вместо. В режиме редактирования я предоставляю пользователю возможность изменить тип на Orange, но как мне обновить существующий Apple экземпляр, так что теперь это Orange? Я не могу просто удалить Orange и создать новый Apple экземпляр из-за других отношений. Это вообще возможно?

0 ответов

Другие вопросы по тегам