hibernate 1对多 inverse配置

    在使用hibernate对1对多这种模型进行操作时,总发现多方的外键不能保存,一直为空,百度后发现是inverse的配置错误

    根据自己的测试,如下表所示:(1方配置inverse,多方不配置)

inverse setMain sql条数 数据库结果
true set 1条 正确
false set 2 正确
true 未操作 1 明细表缺少外键
false 未操作 2 正确

从上表中可以看出:

 只有inverse==true,并且在多方未维护1方时,结果会出错。

其余条件下,均得到正确结果。

 

分析:

inverse指定由谁来维护外键关系,
如果==false,则由自己(1方)控制
生成sql语句会产生insert update 两条
如果==true,则由对方(多方)进行维护。
只会生成insert 1条语句,提高数据库效率

 

结论:

在1对多关联关系中,一般将多方设置为主控方(同时需要在多方维护关联关系), 这样将有助于改善性能,不需要在insert后再update,直接insert即可。
 
 
参考资料:
 

hibernate 1对多 inverse配置,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。