zoukankan      html  css  js  c++  java
  • 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即可。
     
     
    参考资料:
     
  • 相关阅读:
    天生我材必有用?
    峨眉山徒步之行
    S3C6410 GPIO操作接口
    工作
    奖金
    吝啬的地主
    聪明的小李
    地铁重组
    灵魂分流药剂
    摆渡线路
  • 原文地址:https://www.cnblogs.com/malaya/p/3873260.html
Copyright © 2011-2022 走看看