shop++ 4.0系统 一对多,多对一 ,多对多关系配置(个人心得和一些见解)

来源:互联网 发布:淘宝代销图片怎么编辑 编辑:程序博客网 时间:2024/06/04 23:25

一对一关联 关系映射:

售后服务(customer) ————订单表(order)


在售后服务(customer)实体类中配置

@NotNull

@JoinColumn(name = "order_id", nullable = false, updatable = false)

在售后表中配置一个订单ID 不能为空 不能修改

@OneToOne

private Order order

 

在订单表(order)实体类中配置

@OneToOne( cascade = CascadeType.REMOVE, mappedBy = "order")

级联影响删除操作

private Customer customer

 

 

一对多关联 关系映射:

会员(Member)————会员等级(MemberRank)

在会员(Member)实体类中配置

@ManyToOne(fetch = FetchType.LAZY)

public MemberRank getMemberRank;

 

在会员等级(MemberRank)实体类中配置

@OneToMany(mappedBy = "memberRank", fetch = FetchType.LAZY)

public Set<Member> getMembers()

 

多对多关联 关系映射:

会员(Member)————货品(Goods)

在会员(Member)实体类中配置

@ManyToMany(fetch = FetchType.LAZY)

@JoinTable(name = "xx_member_favorite_goods")--这里是指定生中间表的表名

public Set<Goods> getFavoriteGoods()

 

在货品(Goods)实体类中配置

@ManyToMany(mappedBy = "favoriteGoods", fetch = FetchType.LAZY)

public Set<Member> getFavoriteMembers()

 

mappedBy :
1、只有配置了OneToOne,OneToMany,ManyToMany的一方才有mappedBy属性
2、mappedBy标签一定是定义在被拥有方的,他指向拥有方
3、mappedBy跟joinColumn/joinTable总是处于互斥的 一方,也可以理解为正是由于拥有方的关联被拥有方的字段存在,拥有方才拥有了被拥有方。mappedBy这方定义的joinColumn/joinTable总是失效的,不会建立对应的字段或者表;

注:关系维护方是指双方的关系的绑定(指set外键关系)由关系维护方来维护的。并且只在关系维护方总存在外键字段(被维护方字段)。。


文章来自于:http://blog.csdn.net/a_1515/article/details/51331353

0 0
原创粉丝点击