现有user,role和user-role表,user-role为两表中间的关系表,两表为【多对多关系】

现给role(被动)设置inverse="true"(放弃对关系的维护,即role表放弃对关系表user-role的维护),
当role.getUSERS().add(user1)时不会在关系表user-role中生成记录,
当user1.getRoles().add(role1)时就会在关系表user-role中生成记录。

但是这并不妨碍casecade给user表role表级联更新。

需要注意:
当两端都是inverse= "false"或是default值时,在代码对关系显示的维护也是不对的,会导致在关系表中插入两次关系。 
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1-1' for key 'PRIMARY'

当关系的两头都用inverse="true"也是不对的,就会导致任何操作都不触发对关系表的操作。

现有Customer,LinkMan表,为【一对多关系】

public void demo1(){
        Session session = HibernateUtils.getCurrentSession();
        Transaction tx = session.beginTransaction();
        
        Customer customer1 = new Customer();
        customer1.setCust_name("孙悟空");
        
        LinkMan linkMan1 = new LinkMan();
        linkMan1.setLkm_name("太上老君");
        
        customer1.getLinkManSet().add(linkMan1);
        
        // 条件在Customer.hbm.xml上的set中配置了cascade="save-update" inverse="true"
        session.save(customer); // 客户会插入到数据库,因为设置了级联sava-update所以联系人linkMan1也会插入到数据库中,但是因为设置了inverse="true"customer表放弃了对外键的维护权(即LinkMan表里面的外键link_cust_id为null)
        
        tx.commit();
    }

hibernate的多对多关系中对inverse属性的设置相关推荐

  1. Hibernate 学习心得1: 多对多关系中,中间表无法插入数据。

    Hibernate 学习心得之一 多对多关系中,中间表无法插入数据. 最近学习 spring4+hibernate4,学习中遇到了很多坑. 在这里我来说说我遇到的坑,这里就不介绍如何spring如何集 ...

  2. one-many和many-one的关系中的inverse的详解

    在one-many和many-one的关系中的inverse的详解. 1.现在假设有两个类Customer与Order,一个Customer可以有多个Order 2. 如果在Customer.hbm. ...

  3. Hibernate中的inverse属性和cascade属性

    假设Customer和Orders 建立一对多的双向关联. inverse 属性: //加载持久化对象 Customer customer = (Customer) session.load(Cust ...

  4. c语言中边框所占两列一行,css中的border-collapse属性如何设置表格边框线?(代码示例)...

    css中的border-collapse属性如何设置表格边框线?本篇文章就给大家介绍css中的border-collapse属性是什么? border-collapse属性设置表格边框线的方法.有一定 ...

  5. java中使用QBC的好处_使用QBC的方式应用多对多关系中的查询

    关系描述 User实体和Group实体是多对多的关系,实体和表的对应关系如下: Java Bean 表 User tb_user Group tb_group tb_user表的字为:ID,UserN ...

  6. mysql 多对多建表_mysql – 为什么在多对多关系中创建一个新表?

    我正在创建一个数据库来存储有关乐器的信息.我在MySQL工作台中使用EER图来可视化每个表之间的关系. 当我创建多对多(n:m)关系时,会创建一个新表,其中包含新关系中涉及的表的主键.其他关系,如一对 ...

  7. EF多对多关系中如何利用关系表(EF4.1 Many to Many involves junction table details)

    一般的多对多关系数据库表: Mapping代码: Code Snippet modelBuilder.Entity<BlogPost>() .HasMany(b => b.Categ ...

  8. 网页中a标签属性统一设置新窗口打开

    原文地址:http://www.cnblogs.com/942267027wzmblog/p/5624173.html 在开发过程中,我们往往想在页面中,给<a>设置一个统一的默认格式,例 ...

  9. php textarea 默认值,html中的textarea属性大全(设置默认值 高度自适应 获取内容 限制输入字数 placeholder)...

    1.textarea设置默认值 HTML: 此段代码设置一个textarea文本框 并且设置为隐藏 2.textarea高度自适应 今天需要些一个回复评论的页面,设计师给的初始界面就是一个只有一行的框 ...

最新文章

  1. 菜鸟也来学习ORACLE(1)_linux下安装oracle 11g
  2. GridView的DataKeyNames属性 转载的
  3. zip压缩与解压缩示例
  4. php去除最后一位,php字符串怎么去除最后一个字符
  5. 案例实作图解.Net Entity Framework 教程
  6. 如何制作提交按钮,实现多条件筛选
  7. 点击延迟_300ms 延迟是什么,如何解决
  8. TortoiseGit- 创建本地新分支,提交推送到远程,本地新分支合并到工作分支,提交到远程工作分支等。...
  9. jms activemq_带有ActiveMQ的JMS
  10. 基础组件完善的今天,如何通过业务组件提效?
  11. SCRF的简介及防护手段
  12. js获取日期实例之昨天今天和明天、后天
  13. 小米台灯底座接口很松_小米新品,米家充电台灯,续航40小时,不足百元,米粉:买买买...
  14. Linux Shell处理文本最常用的工具大盘点
  15. Flutter高级第2篇:JSON的序列化和反序列化、创建模型类转换Json数据
  16. 如何在打开谷歌的时候强制跳转google.com
  17. 考勤系统 服务器管理,考勤管理系统ZKNet Web Server管理
  18. Fish for mac安装 fish+on my fish ---(powerline主题)美化
  19. linux进入运行exe命令,在Deepin V20系统中打开运行exe文件的两种方法
  20. 0402网络基础--查看及测试网络连通、IP地址、IPv6、子网划分

热门文章

  1. JS遍历从数组中删除指定元素
  2. 奇异矩阵与非奇异矩阵(广义逆)
  3. 对于程序员和架构师来说最重要的事【小结】
  4. javascript 二维数组 json数据
  5. Python标准库inspect
  6. 机器翻译的译后编辑(PEMT)
  7. 我的世界java笔刷指令_笔刷-goBrush 插件 | 我的世界 | MC世界侠
  8. 【冷收藏】那些我们不知道的超有趣网站
  9. onblur和onchange
  10. 羊了个羊1.0(第一关)