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

一对一关联 关系映射:

售后服务(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外键关系)由关系维护方来维护的。并且只在关系维护方总存在外键字段(被维护方字段)。。

ShopXO 国内领先企业级B2C免费开源电商系统! 求实进取、创新专注、自主研发、国内领先企业级B2C电商系统解决方案。 遵循Apache2开源协议发布,并提供免费使用。 PC+WAP、支付宝小程序、微信小程序、百度小程序。 传送门 官网地址:http://shopxo.net/ 演示地址:http://demo.shopxo.net/ (管理账户/密码可进入官网查看) 支付宝小程序:http://shopxo.net/alipay.html (已发布) 微信小程序:https://shopxo.net/weixin.html (已发布) 安装教程 v1.2.0安装教程:https://ask.shopxo.net/article/5 官方QQ群 群号:833531593 答案:shopxo.net 源代码平台 Github:https://github.com/gongfuxiang/shopxo 码云/开源中国:https://gitee.com/gongfuxiang/shopxo 腾讯云开发者:https://dev.tencent.com/u/gongfuxiang/p/shopxo/git 扩展性 独立模块式开发,完善的注释,易扩展。 安全性 防止sql注入,代码高安全性。 轻量级,高性能 支持多数据库,读写分离,高并发,内置缓存机制。 后端基于ThinkPHP v5.1 ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验和易用性,并且拥有众多的原创功能和特性,为WEB应用开发提供了强有力的支持。 前端基于AmazeUI v2.7.2 组件丰富,模块化 以移动优先(Mobile first)为理念,从小屏逐步扩展到大屏,最终实现所有屏幕适配,适应移动互联潮流。 本地化支持 相比国外框架,Amaze UI 关注中文排版,根据用户代理调整字体,实现更好的中文排版效果;兼顾国内主流浏览器及 App 内置浏览器兼容支持。 轻量级,高性能 Amaze UI 面向 HTML5 开发,使用 CSS3 来做动画交互,平滑、高效,更适合移动设备,让 Web 应用更快速载入。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值