Spring JPA实体对象关联关系

       在关系数据库中对象之间的关系分为一对一(OneToOne)、多对一(ManyToOne)、一对多(OneToMany)和多对多(ManyToMany),并且被关联对象和关联对象之间的关系映射也存在单向和双向两种。

       在数据库设计时,一般将对象属性限制设置为nullable,即不限制表中哪些字段内容必须填写,因此就需要在开发时通过代码设置关联关系和字段限制。在Spring JPA中可以通过使用@OneToOne等关系、@JoinColumn定义对象之间的关系。但是数据的完成性维护并不能只通过关系映射就能够完成,关系映射是数据库关联关系的一个辅助,需要根据具体的情况采用不同的设置。

       例如:系统中存在公告和公告通知两个对象。在公告编制过程中可以对公告信息进行N次修改,只有最终修改完成并发布公告时才会生成公告通知信息。在以上对象关系中,公告和公告通知是一对多的关系,但是公告通知并不完全依赖于公告存在。

       公告对象的级联关系只有级联删除,只有在删除公告时才将与之相关的公告通知删除。在公告对象中对公告通知获取的策略为LAZY,即只有需要时才获取。

       公告通知对象的不设置级联关系,只有更新公告通知记录的功能或接口。在公告通知中对其公告对象获取的策略为EAGER,即在获取公告通知时获取公告。

 

对象关系主要属性包括:mappedBy(被关联对象名称,由@Entity标签指定)、cascade(级联方式)、fetch(关联对象获取策略)、optional(是否必须存在关联对象)。

 

注:JPA标签要么都放到对象属性上,要么都放到get方法上,如果混了在执行时就可能不识别标签标注的属性或对象。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值