首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

为何hibernate不能为带索引的表自动建立外键

2013-09-05 
为什么hibernate不能为带索引的表自动建立外键?many to one关系中,hibernate会自动为many一方建立外键,以

为什么hibernate不能为带索引的表自动建立外键?
many to one关系中,hibernate会自动为many一方建立外键,以前用的挺正常,但是最近发现一件事情,我有一个数据库,hibernate之前已经在启动时建立了外键,最近因为某个测试,我把hibernate建立好的外键全部删除了,然后重新启动项目了,然而这次我发现hibernate没有再自动为数据表建立外键了,我反复查找了原因,后来发现,当第一次hibernate建立外键时,还同时在表里建立了基于外键的索引,我删除了外键,没有删除索引,当索引存在的情况下,hibernate不会新建外键,删除了索引,新建外键就正常了,但是这是为什么呢?
[解决办法]
在一对多的关系中,在多的一方会产生一个外键,这个外键没有自动添加索引,当存在从一的一端产生对多的一端的查询时,有可能会在多的一端造成全表查询问题,数据量巨大时会产生严重的性能问题。可以在多的一端的外键上添加索引来解决这个问题。

热点排行