假设我有以下课程:
class Fruit { ... }
class Apple extends Fruit { ... }
class Orange extends Fruit { ... }
假设用户想要创建一个新的Apple
. 他们从下拉列表中选择一种类型,然后我使用一项服务将类型字符串转换为具体类型:
def fruit = FruitService.createFruit(params.type)
fruit.properties = params
fruit.save()
这将成功保存一个新Apple
实例。
现在假设用户意识到他们犯了一个错误并且他们想创建一个Orange
代替。在编辑视图中,我为用户提供了将类型更改为 an 的功能Orange
,但是如何更新现有Apple
实例以使其现在为 an Orange
?由于其他关系,我不能简单地删除Orange
并创建一个新实例。Apple
这甚至可能吗?