我正在处理使用Spring MVC的类层次结构上的CRUD:Employee->{Manager, Waiter, Chef}
。 我使用单字段表继承策略与字段DTYPE作为鉴别器。 当我需要更新服务员 - >经理(不是一个服务员已被提升,但只是为了解决用户的输入错误!!!)或任何其他实体组合的情况下,我被困住了。休眠:使用更改类型更新条目
的Hibernate本身拒绝改变记录在DTYPE场的类型,即使我明确地做:
managerDAO.update(manager);
其中manager
是Manager
类的对象与现有的ID(belongning的服务员类型(DTYPE =“Waiter”))在数据库中。
现在的问题是:如何更正我的用户的输入错误,这似乎是非常简单和普遍的情况?我只需要让以前的服务员条目成为具有相同ID的管理员条目。
我不知道Hibernate是否有一些技巧来处理这种情况?因为我不想重新发明一个轮子,或者找到一种应该由Hibernate团队预见到的解决方法。
我已经考虑在DTYPE场和
- SQL更新
- 删除并重新插入正确类型的新项...但是这一切看起来像Hibernate的错误用法。
任何帮助将不胜感激!