我必须使用hibernate模式,并且不太确定如何解决此问题,我有2个具有1..n关系的表,如下所示:
------- TABLE_A ------- first_id(pk) second_id(pk) [其他领域] ------- TABLE_B ------- first_id(pk)(fk TABLE_A.first_id) second_id(pk)(fk TABLE_A.second_id) third_id(pk) [其他领域]
我该如何使用Hibernate进行管理???
我不知道如何管理第二张表的主键…
在Hibernate参考文档中有一个与您的案例完全相似的示例。在此示例之前,您将找到解释。这是与您的问题匹配的示例(用户是表A,客户是表B):
@Entity class Customer { @EmbeddedId CustomerId id; boolean preferredCustomer; @MapsId("userId") @JoinColumns({ @JoinColumn(name="userfirstname_fk", referencedColumnName="firstName"), @JoinColumn(name="userlastname_fk", referencedColumnName="lastName") }) @OneToOne User user; } @Embeddable class CustomerId implements Serializable { UserId userId; String customerNumber; //implements equals and hashCode } @Entity class User { @EmbeddedId UserId id; Integer age; } @Embeddable class UserId implements Serializable { String firstName; String lastName; //implements equals and hashCode }
注意:如果您拥有这两个表的代理标识符,则要简单得多。除非您被迫处理旧式架构,否则请帮自己一个忙,并使用代理密钥。