【发布时间】:2011-04-27 03:46:13
【问题描述】:
我正在尝试将一些旧代码从手工持久性迁移到 Hibernate。这里的问题是一个特殊的映射,其中目标实体类型/表由列值定义。
示例数据库表:
表“关系”:
- id - 我的主键
- parentType - 指定父类型的字符(例如,“I”表示 Item 表中的对象,“C”表示 Category 表中的对象)
- parentId - parentType 表中的主键
- childType - 指定子类型的字符
- childId - 子表中的主键
问题是所有这些类型(例如 Item 或 Category)都有相同的抽象父对象,称为 GenericObject,它没有自己的表。继承是 TABLE_PER_CLASS。
不好的是,通过 parentId 或 childId 您无法分辨类型,id 在这些表中不是唯一的。您需要查看 parentType 和 childType。
现在我如何在 Hibernate 中映射这种疯狂?我希望将父项和子项映射到一个 GenericObject 变量,该变量实际上是 Item 或 Category 的一个实例。
有什么想法吗?
【问题讨论】: