如何在休眠中指定外键?
我有一个表A
,其id
列也构成了主键。现在,第二个表B
也有id
作为列,但它应该是引用foreign key
的{{1}}列的id
。
如何指定此关系?
答案 0 :(得分:0)
此示例是使用共享主键的一对一关系。 您可以使用@PrimaryKeyJoinColumn来实现此目的。
在A组
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn(name = "ID")
public B getB() {
return b;
}
在B班,
@Id
@GenericGenerator(name = "gen", strategy = "foreign", parameters = { @Parameter(name = "property", value = "a") })
@GeneratedValue(generator = "gen")
public Long getId() {
return id;
}
@OneToOne(mappedBy = "a", cascade = CascadeType.ALL)
public B getB() {
return b;
}
答案 1 :(得分:0)
如果您正在使用注释,则必须使用以下注释添加关系和连接列:
@ManyToOne
@JoinColumn(name="id", nullable=false)
public A getA() {
//...
}
如果你正在使用映射xml文件,它就是这样的:
<set name="objects" lazy="true" inverse="true" cascade="all-delete-orphan">
<key column="ID" />
<one-to-many class="com.objectx.A" />
</set>