【发布时间】:2011-10-07 23:26:12
【问题描述】:
我想知道是否可以用 JPA 很好地映射公共实体。
什么是我的共同实体?假设我的许多域实体都有(一个)关联图像。因此,会有UserProfile -> Image(个人资料图片)或Event ->* Image(宣传活动的图片,一对多)之类的关系。
使用纯 SQL,我可以有一个 image 表,其中一个 owner_id 列包含 UserProfile#ID 或 Event#ID。由于我永远不需要找到图像的所有者,而是将图像找到所有者,因此我不在乎我无法立即判断图像 5 是个人资料图片还是活动图片。
我猜在 JPA 级别上,只要我没有与 Image 的一对多或多对一关系,相同的“hack”就可以工作,因为它们需要反向引用。 ..是的,这就是问题所在。我无法创建该反向引用。
想到的唯一可行的方法是创建一个abstract Image 来保存所有常见的Image 字段,然后为每个关系创建一个具体的子类。有意义吗?
【问题讨论】: