前面几篇文章已经较讲解了三大种关联映射,多对多映射就非常简单了,不过出于对关联映射完整性的考虑,本文还是会简要介绍下多对多关联映射。
1、单向多对多关联映射
情景:一个用户可以有多个角色,比如数据录入人员、商务主管等;一个角色也可以有多个人,比如张三和李四都是数据录入人员。
这里只维护用户到角色的单项关系:此处多对多的关联映射,需要三张表来维护。
那么在User实体里面需要假如角色的引用,在用户实体User的关系里面需要加入<many-to-many>标签来维护关系(假如引用返回java.util.set),下面是配置的关系代码:
<set name="roles" table="t_user_role">
<key column="user_id" />
<many-to-many class="com.lzq.hibernate.Role" column="role_id" />
</set>
2、双向多对多关联映射
同理,如果是双向多对多关联映射,那么就需要在Person实体里面加入User的引用,并且在Person的配置文件中多做如下配置:
<set name="users" table="t_user_role">
<key column="role_id" />
<many-to-many class="com.lzq.hibernate.User" column="user_id" />
</set>
至此,四种关联映射就分享完了,在此过程中,我对不仅对这些知识有了更加清晰的理解,同时对写博客有了很深的感慨,有了一种写一篇关于“如何写博客”的文章的冲动,正在构思中,关注我的童鞋敬请期待哈。