【发布时间】:2011-08-10 07:56:40
【问题描述】:
我有以下数据库设计:
(来源:kawoolutions.com)
如您所见,States、Countrys 和 Continents 都是 GeoAreas 的子表。这里有趣的事实是,States 和 Country 更改了它们的主键,而不是(据说)从 GeoAreas 继承的主键。
目的:州和国家也用于邮政地址,我不想为此使用 GeoAreas.id(未显示对州和国家的引用)。
问题是: JPA 支持这样的设计吗?仅 JPA 2.0?完全没有?
我看到的问题是 @Id 注释(用于所有映射)将如何指定为 GeoArea 类看起来像
public abstract class GeoArea implements Serializable
{
@Id
@Column(name = "id")
protected Integer id;
...
}
子类还需要在某些属性上指定另一个替代@Id,例如
public class Country extends GeoArea
{
@Id
@Column(name = "iso_code")
private String isoCode;
...
}
谁能指出我拒绝这种情况的 JPA 规范?
【问题讨论】:
标签: hibernate inheritance jpa mapping primary-key