Hibernate实体关系映射——双边的多对多关系

来源:互联网 发布:友盟app数据统计 编辑:程序博客网 时间:2024/05/27 14:13

//刘梦冰发表于2015-6-19

http://blog.csdn.net/lmb55/article/details/46565581讲述了单边的多对多关系,本文在该例的基础上近一步学习双边的多对多关系。

单边的多对多关系中:

标签类Tag中没有Post属性,但是帖子类Post中有Tag属性,它们之间是单边的多对多的关系。Tag、Post都是多方,它们的多对多关系保存在第三个表(中间表tb_tag_post)中。Tag标签实体类只有一个id主键以及String类型的name普通属性。Post帖子实体类中有id主键、标题、内容等普通属性,还有一个Set类型的多对多集合属性tags。

而本例的双边的对多对多关系中,

标签类Tag中有Post属性,帖子类Post中有Tag属性。所以Tag中需要增加一个Set<Post>类型变量,以及对应的getter、setter方法。

由于Post中已经配置了数据库表的映射,现在只需要在Tag中用mappingBy指定Post里与之对应的属性,即Post中的List<Tag>tags属性。

配置代码如下:

@ManyToMany(mappingBy="tags")private Set<Post> posts=new HashSet<Post>();
1 0