我有一种情况,即几个表(TableA和TableB)与同一个表(TableC)具有一对一的关系 . TableA和TableB无关 . 我设计了如下表格 .
TableA
- key
- something
- c_ref_key
TableB
- key
- something
- c_ref_key
TableC
- key
- something
当我使用hibernate逆向工程从这个数据库生成JPA实体时,它在TableA和TableB中为TableC创建了多对一关系 . 通常,为了创建一对一的关系,我会将TableA主键作为TableC的主键,但由于我有其他表(TableB)也与TableC有一对一的关系,所以我不能这样做 . 因此,我不得不在TableA和TableB中使用TableC的外键(这导致了JPA中的多对一关系) . 有没有其他方法来设计以保持一对一的关系?或者至少在生成的JPA实体中可以有一对一的关系?
1 回答
您可以将@OneToOne hibernate映射与@JoinColumn一起使用来创建外键 . 下面是架构的最基本实现,您可以根据您的要求进行扩展 .
TableA.java
TableB.java
TableC.java
我在MySql数据库上测试了这个模式,它运行正常 .