//刘梦冰发表于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>();