我的旧应用程序内部有两个表。
Host
和Tables
。表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用该方法添加了什么。
答案 0 :(得分:0)
首先,如果您在数据库中删除表,休眠将不再适用于ManyToOne关系(表实体),因此:
您需要删除Table类中的ManyToOne批注 然后将其更改为 @Transient 或删除 hosts 变量 与获取器和设置器
一起使用
如果您这样做,则您的关系 不再是双向的 ,该关系将变为 Uni-Directional ,并且可以正常工作而且您仍然可以获取所有“表格”列行!
“添加注释”列与添加外键和 您提到的有关删除Tables_fk的部分会产生歧义