博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OneToMany与ManyToOne的属性
阅读量:5092 次
发布时间:2019-06-13

本文共 1467 字,大约阅读时间需要 4 分钟。

供自己查阅,嫌低级的勿喷!

1.OneToMany的属性

①targetEntity

  定义关系类的类型,默认是该成员属性对应的类类型,所以通常不需要提供定义。

②mappedBy

  定义类之间的双向关系。如果类之间是单向关系,不需要提供定义,如果类和类之间形成双向关系,我们就需要使用这个属性进行定义,否则可能引起数据一致性的问题。该属性的值是“多”方class里的“一”方的变量名

③cascade

  该属性定义类和类之间的级联关系。定义的级联关系将被容器视为对当前类对象及其关联类对象采取相同的操作,而且这种关系是递归调用的。举个例子:Order 和OrderItem有级联关系,那么删除Order时将同时删除它所对应的OrderItem对象。而如果OrderItem还和其他的对象之间有级联关系,那么这样的操作会一直递归执行下去。
  cascade的值只能从CascadeType.PERSIST(级联新建)、CascadeType.REMOVE(级联删除)、CascadeType.REFRESH(级联刷新)、      CascadeType.MERGE(级联更新)中选择一个或多个。还有一个选择是使用CascadeType.ALL,表示选择全部四项。

  CascadeType.REFRESH:级联刷新,当多个用户同时作操作一个实体,为了用户取到的数据是实时的,在用实体中的数据之前就可以调用一下refresh()方法!

  CascadeType.REMOVE:级联删除,当调用remove()方法删除Order实体时会先级联删除OrderItem的相关数据!

  CascadeType.MERGE:级联更新,当调用了Merge()方法,如果Order中的数据改变了会相应的更新OrderItem中的数据,注意用update()方法是不会级联更新的。

  CascadeType.PERSIST:级联保存,当调用了Persist() 方法,会级联保存相应的数据,注意用save()方法是不会级联保存的。

④fatch

  可选择项包括:FetchType.EAGER和FetchType.LAZY。前者表示关系类(本例是OrderItem 类)在主类(本例是Order类)加载的时候同时加载,后者表示关系类在被访问时才加载。默认值是FetchType.LAZY。
 

2.ManyToOne:指明OrderItem和Order之间为多对一关系

  ManyToOne注释有四个属性:targetEntity、cascade、fetch 和optional,前三个属性的具体含义和OneToMany的同名属性相同,但ManyToOne的fetch 属性默认值是FetchType.EAGER。

  optional属性是定义该关联类是否必须存在,值为false 时,关联类双方都必须存在,如果关系被维护端不存在,查询的结果为null。值为true 时, 关系被维护端可以不存在,查询的结果仍然会返回关系维护端,在关系维护端中指向关系被维护端的属性为null。optional属性的默认值是true。optional 属性实际上指定关联类与被关联类的join 查询关系,如optional=false 时join 查询关系为inner join, optional=true 时join 查询关系为left join。

 

 

 

转载于:https://www.cnblogs.com/mjsh/p/3284931.html

你可能感兴趣的文章
多线程,多进程使用场景
查看>>
Codeforces Round #309 (Div. 1) A(组合数学)
查看>>
猎豹浏览器_金山猎豹浏览器_官方正式版下载_首款双核安全浏览器
查看>>
CISCO3560 VLAN配置实例
查看>>
Native Fullscreen JavaScript API (plus jQuery plugin)
查看>>
阿里云主机安装Memcached
查看>>
[Leetcode] Pascal's Triangle II
查看>>
运行批处理bat文件不出现黑框
查看>>
PAM for Kmedoids algorithm, PAM算法的实现, kmeans 算法实现. 利用scikit-learn toolbox.
查看>>
【JUC】JDK1.8源码分析之ConcurrentSkipListMap(二)
查看>>
Dij_heap__前向星。
查看>>
网络流24题(更新中
查看>>
python字典
查看>>
CouchDB 1.3.0的新特性以及算法的强化
查看>>
收集WebDriver的执行命令和参数信息
查看>>
VS2010版快捷键
查看>>
[转]解决Sublime Text 2中文显示乱码问题
查看>>
stringGrids 部分只读
查看>>
iOS 8 Xcode6 设置Launch Image 启动图片<转>
查看>>
内存对齐的规则与作用
查看>>