在做hbiernate的many-to-many的双向关联时,需要了解的几点:
一方要设置inverse="true",另一方要设置inverse="false"。inverse="false"的一方保存时,维护多对多之间的关系,且只要将相互的关系告诉这一方即可。
如果inverse都设置为true,双方的关系将都不到维护。
如果都设置为false,双方将共同维护之间的关系,这时,要将双方的包含关系都要设置清楚,否则将会导致关系维护混乱。
如果设置了casade="save-update",只能设置一方,如果双方都设置的话,当更新一方的时候,同时会更新另一方,另一方的更新又会导致一方的更新。
下例是一个多对多的代码演示,一个演员可以演多个角色,相反一个角色也可以由多个演员来演:
第一步:先间两个JavaBean类
第二步配置其hbm.xml文件:EmployeePO.hbm.xml配置
RolePO.hbm.xml配置
第三步配置映射文件hibernate.cfg.xml
第四步写一个DAO
第五步测试: