其中从表是关系被维护端:
Hibernate实现多对多关系映射有两种方法: 1.通过配置两个一对多来实现多对多,既三张数据表,三个实体,同时配置<component>组件模块,唯一缺点是要同时实现这个外键中间表的增删查改功能. 2.通过配置双方的<set>模块来实现,同时两个实体的bo对象都有对方的Set集合,而inverse必须设置主控方为false,被控方为inverse=true,如果双方都为true(即都为被控方)那就没人来维护关系,那么更新/删除数据时无论哪一方都不会去更新/删除中间表的数据...通过Hibernate配置后已经可以实现主控方删除时能删除本身数据和中间表数据,而被控方只能删除本身表的数据,中间表的数据仍然存在....要想实现被控方删除时同时删除中间表数据,需要去数据库中设置外键中间表的关联关系为delete cascade就可以了.. 以下为hibernate配置: User: <set name="roles" table="userrole" inverse="false"> <key column="username"/> <many-to-many class="com.incesoft.ui.bo.Role" column="id" /> </set> Role: <set name="users" table="userrole" inverse="true"> <key column="id"/> <many-to-many class="com.incesoft.ui.bo.User" column="username" /> </set>