谁能讲解下Hibernate 注解的mappedby属性 5
展开全部
One的一方会成为主控方,加入mappedBy以后,就不会生成这两张关联表的中间表了,而是在Many的一方的表中生成一列作为外键。而且在你删除Many的一方时,只是删除了Many的表中的数据,但是,删除One一方时,会相应级联删除应的Many的数据。
举个例子,角色和用户是一对多的关系,一个角色可以对应多个用户。角色Role表中的@OnetoMany中加入mappedBy=“role”,在用户User表中@ManytoOne中可以不加其它注释,这样,role也就是One的一方便是主控方,会在user表中也就是Many的一方生成外键。删除某一个用户时,角色表并不会有变化,而当删除一个角色时,相对应的拥有那个角色的用户会被级联删除。
PS:我正好也是遇到这个问题,虽然你现在已经解决了,但还是一点点打了出来,方便以后想了解这个问题的童鞋。。
举个例子,角色和用户是一对多的关系,一个角色可以对应多个用户。角色Role表中的@OnetoMany中加入mappedBy=“role”,在用户User表中@ManytoOne中可以不加其它注释,这样,role也就是One的一方便是主控方,会在user表中也就是Many的一方生成外键。删除某一个用户时,角色表并不会有变化,而当删除一个角色时,相对应的拥有那个角色的用户会被级联删除。
PS:我正好也是遇到这个问题,虽然你现在已经解决了,但还是一点点打了出来,方便以后想了解这个问题的童鞋。。
展开全部
mappedBy表示声明自己不是一对多的关系维护端,由对方来维护,是在一的一方进行声明的。mappedBy的值应该为一的一方的表名。
例如:城市与大学,一个城市有多个大学。
在City实体类中
@OneToMany(mappedBy="city")
@Cascade(CascadeType.ALL)
private List<College> college;
@mappedBy注解的作用:在JPA中,在@OneToMany里加入mappedBy属性可以避免生成一张中间表。
例如:城市与大学,一个城市有多个大学。
在City实体类中
@OneToMany(mappedBy="city")
@Cascade(CascadeType.ALL)
private List<College> college;
@mappedBy注解的作用:在JPA中,在@OneToMany里加入mappedBy属性可以避免生成一张中间表。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询