JPA - 包含没有id列的实体

时间:2016-06-07 12:29:10

标签: java jpa

我有一个包含2个桌子的数据库:House和Cottage。 每个表都有一个ID列,其中包含主键。 Cottage表中有一列" HouseID",其中包含House记录的外键。

现在,在我的House实体类中,我需要包含Cottage对象。

如何在House实体类中注释Cottage对象以包含信息。我是否需要在Cottage实体类中添加其他注释?

这是否足够?

@OneToOne(fetch = FetchType.EAGER)
private Cottage cottage;

House表中不包含Cottage表的外键。

感谢名单

2 个答案:

答案 0 :(得分:1)

您需要使用@JoinColumn注释定义外键:

@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "HOUSE_ID")
private Cottage cottage;

"HOUSE_ID"是数据库列的实际名称,而不是Java属性。

答案 1 :(得分:1)

您应该将@JoinColumn添加到House实体

@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name="HouseID")
private Cottage cottage;

name 应该是引用的表列的名称