Hibernate的m-t-m 不是很好用

解决方案 »

  1.   

    POJO类中,只有A,和B两个类
    而对应的数据库表中,则有3个表(包括中间表)所以在Hibernate的多对多关系中,所谓的关联类实际是不存在的,是虚拟的。
    但在操作中,一般在数据库中存在相关的关联表,来维持两类间的联系;具体在*.hbm.xml映射文件来指派
      

  2.   

    正确建好模,建好数据库后,一味地用工具(如:MiddleGen)自动生成是POJO是不对的;
    因为自动生成的POJO类的中间关联类是应该不存在的;
    所以在生成POJO类前,应修改A,B的映射文件总之,是数据库的3个表(中间表)对应POJO的2个类,这才是关键;
    这样就不会出现关联约束问题
      

  3.   

    我的QQ 43832300
    MSN [email protected]我觉得现在的问题不是配置对不对,而是hibernate能不能以这样的方式实现对对多关联的问题,
    a1和b1互相持有对方,他们都会去更新关联表tableAB,而他们写入的数据都是一样的,
    就是tableAB的复合主建,这样就会产生数据库的主建约束错误啊!!!
      

  4.   

    是不是 单向 many-to-many关系必须引入中间类,用两个one-to-many实现啊?
    大虾们,给个明确的答案啊,
    先谢了!!
      

  5.   

    我的方法是:A。使用两个一对多的关系,照平时惯用的方法实现
    B。用many-to-many实现,只设一边:inverse="true" cascade="all"  若两边都设,会出毛病
      

  6.   

    不知道楼上的方法是怎么用的,
    据我所知,如果你用了inverse 就没法正确实现关系
      

  7.   

    去这里看下,有我做过的例子,
    其中包括多对多关联的良种实现方法。
    或许对你有帮助,http://blog.csdn.net/zeq258/你可以先看,Hibernate实现技术总结(三),在里边找到你要的例子的实现,
    再在 Hibernate实现技术总结(四)中找pojo和映射文件。
      

  8.   

    把 一的一方cascade="none"  inverse="true"然后保存多的那方,让多的那方负责更新和维持两者之间的关系