当前位置:首页 > 开发 > 编程语言 > Hibernate > 正文

Hibernate多对多注解中间表插入数据失败的问题

发表于: 2015-01-06   作者:肖泽文   来源:转载   浏览:
摘要: 1.表A  @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "companies")        public Set<B> getBs() {     
1.表A  @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "companies")
       public Set<B> getBs() {
           return bs;
        }

2.表B  @ManyToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
@JoinTable(name = "tcompany_project", joinColumns = { @JoinColumn(name = "COMPANYID", nullable = false) }, inverseJoinColumns = { @JoinColumn(name = "PROJECTID", nullable = false) })
        public Set<A> getAs() {
         return as;
       }

上面这两个注解还是有讲究的,顺序不能颠倒,否则会出错,中间表不会插入数据,因为这个被坑了好多天.
正确.  b.getAs.add(a)
错误   a.getBs.add(b).这个不会插入数据

Hibernate多对多注解中间表插入数据失败的问题

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
接着导入—>注解所需要的包 ejb3-persistence.jar、hibernate-annotations.jar、hibernate-commo
  对于多对多的关联关系处理,前面我讲解了在数据库中建立第三张表用于维护两者的关联关系,现在
Hibernate一对多关联映射,维护端(一方,无外键方)可以进行关联移除,级联删除,级联保存,级联更新
级联操作,操作class对象的时候 级联操作 student Classes.java文件 1 package cn.itcast.hiberate.
  对于多对多的关联关系处理,一种方式是使用连接表来维持两者的多对多关联关系,也就是说除去两
例子:学生与科目的多对多 学生实体类 package entity; import java.util.HashSet; import java.uti
场景: Student和Course,每一个Student有多个Course,每一个Course也有多个Student。 类文件如下:
多对多关联在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使用中最好转换成一对多的
--------------------------------------------------------------双向---------------------------
Hibernate多对多映射 昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为君消得人憔悴。
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号