说我有以下课程:
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
{1}}?由于其他关系,我不能简单地删除Orange
并创建新的Apple
实例。这甚至可能吗?