如何使用@OneToOne注释绑定两列?
让我说我有2张表A和B.
表A:
表B:
在A班我想写这样的东西:
@OneToOne(fetch = FetchType.EAGER, targetEntity = B.class)
@JoinColumn(name = "id1 and id2", referencedColumnName = "id1 and id2")
private B b;
是否可以使用注释来完成此操作?
感谢。
答案 0 :(得分:1)
您需要的是复合键。使用@IdClass
或@EmbeddedId
@EmbeddedId
这样的例子。
你的复合密钥类:
@Embeddable
public class CompositePK implements Serializable {
protected Integer id1;
protected Integer id2;
// equals, hashCode
}
您的Enity课程:
@Entity
public class A{
@EmbeddedId
private CompositePK compkey;
@OneToOne(optional=true, mappedBy="A")
private B b;
........
}