如何制作外键?

时间:2014-04-28 16:25:31

标签: java hibernate foreign-keys

如何在休眠中指定外键?

我有一个表A,其id列也构成了主键。现在,第二个表B也有id作为列,但它应该是引用foreign key的{​​{1}}列的id

如何指定此关系?

2 个答案:

答案 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>