关于hibernate中多对多的双向关联映射,当插入数据的时候,如果不在其中一方设置一个inverse=true 就会报错。貌似把数据插入了两遍,报唯一性的错误。 我想问下,怎么去确定在哪一方去设置inverse=true,以及报错的原因。还有关于多对多的中间表,会不会在数据库生成,如果没有生成,一般怎么去操作数据。最后,如果不用中间表,一般多对多的问题,怎么解决。
请大家帮下忙,不胜感激。

解决方案 »

  1.   

    两边都不要设置inverse,就能正确的插入的,亲自实验。
    多对多肯定有中间表的,没中间表,就会有第三张业务表。
      

  2.   

    inverse=true设置在放弃数据库操纵权的一方,通常是one-to-many的one方,因为many方是外键字段,在many方更新数据库是合适的。
    many-to-many关系一经定义,第三张表自动生成。当然,你也可以再多实现一个类(对应于中间表),手工做两个one-to-many。