【发布时间】:2016-03-16 08:17:37
【问题描述】:
我想创建一个表,其中一个对象的primary key 也应作为两个@ManyToOne 表的foreign key。
如果不创建额外的表列来引用和重复相同的主键 ID,这是否可能?
例子:
@Entity
public class Person {
@Id
private int personId;
@ManyToOne
@JoinColumn(name="fk_address_id", foreignKey=@ForeignKey(name="fk_address"))
private Address address;
@ManyToOne
@JoinColumn(name="fk_location_id", foreignKey=@ForeignKey(name="fk_location"))
private Location location;
}
问题:Address 和 Location 的 @Id 始终与 Person 的 @Id 相同。
上面的映射将导致休眠生成 3 列。 id, fk_address, fk_location,其中每一列都有相同的值(id)。
问题:是否可以只为该人提供primary key @Id,同时告诉hibernate 这是更多@ManyToOne 外键映射的外键,而不创建这些列?
【问题讨论】:
-
看看this的帖子。
标签: java hibernate postgresql jpa orm