我不得不使用hibernate,不太确定如何解决这个问题,我有两个表,其中有一个1..n的关系,如下所示:
-------
TABLE_A
-------
first_id (pk)
second_id (pk)
[other fields]
-------
TABLE_B
-------
first_id (pk)(fk TABLE_A.first_id)
second_id (pk)(fk TABLE_A.second_id)
third_id (pk)
[other fields]
我怎么能用Hibernate来管理呢???
我不知道如何管理第二个表的主键。
4条答案
按热度按时间91zkwejq1#
在Hibernate参考文档中有一个例子与你的例子完全相似。在这个例子之前,你可以找到解释。下面是这个例子,它符合你的问题(User是表A,Customer是表B):
注意:如果你为这两个表指定了一个代理标识符,那就简单多了。除非你不得不处理一个遗留模式,否则请使用代理键。
lb3vh1jj2#
使用
@PrimaryKeyJoinColumn
和@PrimaryKeyJoinColumns
注解。来自Hibernate手册:@PrimaryKeyJoinColumn
注解确实指出实体的主键用作关联实体的外键值。avkwfej43#
e5nqia274#
对于表A,您可以使用embeddedId
对于表B,也可以使用Idclass,如下所示