一对一处理休眠双向关系

时间:2018-12-02 02:19:27

标签: java hibernate orm foreign-keys

我的旧应用程序内部有两个表。

HostTables。表Host(Tables_fk) column具有外键关系Tables。在我的代码中,我有一种如下的方法。

public class Tables {
    public void addHosts(Host host) {
         getHostsCollection().add(host);
    }
}

现在,我正在拆分数据库,Tables将进入一个单独的数据库。现在,我从Tables_fk中删除列Host,并在其中添加列Table_ID,我将从应用程序中编写该列。现在,由于我正在从应用程序中将Table_ID写入主机表,因此我猜到现在addHosts(Host host) mwthod并不需要存在。

我是对的吗?另外,由于Tables表与Host没有任何外键关系,因此Hibernate用该方法添加了什么。

1 个答案:

答案 0 :(得分:0)

首先,如果您在数据库中删除表,休眠将不再适用于ManyToOne关系(表实体),因此:

  

您需要删除Table类中的ManyToOne批注   然后将其更改为 @Transient 或删除 hosts 变量   与获取器和设置器

一起使用

如果您这样做,则您的关系 不再是双向的 ,该关系将变为 Uni-Directional ,并且可以正常工作而且您仍然可以获取所有“表格”列行!

  

“添加注释”列与添加外键和   您提到的有关删除Tables_fk的部分会产生歧义