是否可以在表中创建唯一的外键? 假设我有实体A和B.
A:
@Entity
class A extends Serializable {
@Id
private long id;
@OneToOne
private B b;
}
B:
@Entity
class B extends Serializable {
@Id
private long id;
}
我想让它成为一个A可以有一个B,除了没有其他A有相同的B.例如:a1有b1,而a2有b2 ......在这种情况下,a3不能有b1或b2,因为B必须是唯一的。
有没有办法实现这个目标?我希望能够将@Column(unique = true)注释放在@OneToOne之上,但这似乎不可能。
答案 0 :(得分:5)
@JoinColumn不起作用。
您需要使用以下内容:
@Table(name="B", uniqueConstraints={
@UniqueConstraint(columnNames={"b_id"})
})
其中“b_id”是外键约束的名称。
答案 1 :(得分:0)
您肯定可以添加:
@OneToOne
@JoinColumn(name =“COLUMN_NAME”,unique = true)