请选择 进入手机版 | 继续访问电脑版
点击联系客服
客服QQ:509006671 客服微信:mengfeiseo
查看: 64|回复: 50

孙伟进的《精通JPA与Hibernate》阅读笔记:JPA API的级联操作

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-5-4 21:49:14 | 显示全部楼层 |阅读模式
JPA  API中的javax.persistence.CascadeType类定义了代表特定级联操作的常量。

CascadeType。通过PERSIST: EntityManager的PERSIST()方法保存当前对象时,所有连接的新临时对象都将级联。

CascadeType。remove:通过EntityManager的REMOVE()方法删除当前持久性对象时,所有连接的持久性对象都将级联删除。

CascadeType。detach:通过EntityManager的DETACH()方法从永久缓存中清除当前对象时,所有关联的对象都将级联。

CascadeType。merge:通过EntityManager的MERGE()方法分解当前对象时,所有关联的对象都将级联。

CascadeType。refresh:通过EntityManager的REFRESH()方法刷新当前对象时,所有连接的对象都将级联刷新。

CascadeType。ALL包含上述所有级联操作。

如果要在通过注释映射永久类时使用默认Hibernate的部分级联属性,可以使用org  . Hibernate  . annotations  . cascade  type类的部分常量。例如:

org  . hibernate  . annotations  . cascade  type  . lock:如果通过默认Session的lock()方法将当前自由对象添加到永久缓存中,则所有关联的自由对象也将添加到永久缓存中。

org  . hibernate  . annotations  . cascade  type  . replicate:通过默认会话的replicate()方法复制当前对象时,所有关联的对象都将级联。

org  . hibernate  . annotations  . cascade  type  . save  _ update:通过默认会话的save()、update()和saveOrUpdate

例如,以下@OneToMany注释的cascade属性值为“org  . hibernate  . annotations  . cascade  type  . save  _ update”:

@ one  tomany(mapped  by=' parent  category  ',

TargetEntity=Category.class)

@ org  . hibernate  . annotations  . cascade(

org  . hibernate  . annotations  . cascade  type  . save  _ update)

Private  SetCategory
nctuation">> childCategories = new HashSetCategory>(0);

Category类是具有自身双向关联的类,它的childCategories属性以及parentCategory属性,进行了如下映射:

@OneToMany(mappedBy="parentCategory",
             targetEntity=Category.class,
             cascade=CascadeType.ALL,
             fetch=FetchType.EAGER)
private SetCategory> childCategories = new HashSetCategory>(0);  //子商品类别
@ManyToOne(targetEntity =Category.class,
            cascade=CascadeType.ALL,
            fetch=FetchType.EAGER)
@JoinColumn(name="CATEGORY_ID")
private Category parentCategory;  //父商品类别

对于以上两个属性,它们的级联操作都是CascadeType.ALL,这意味着对当前的Category对象进行特定操作时,会对所关联的父类别Category对象,以及所关联的所有子类别Category对象进行同样的级联操作。
另外,为了保证从数据库中加载一个Category对象时,会立即加载所关联的父类别和子类别Category对象,采用了立即检索策略:FetchType.EAGER。
回复

使用道具 举报

0

主题

257

帖子

-90

积分

限制会员

积分
-90
发表于 2021-5-4 21:49:18 | 显示全部楼层
学习了,不错,讲的太有道理了
回复

使用道具 举报

0

主题

233

帖子

-4

积分

限制会员

积分
-4
发表于 2021-5-4 22:09:25 | 显示全部楼层
不错不错,很好哦
回复

使用道具 举报

1

主题

251

帖子

-59

积分

限制会员

积分
-59
发表于 2021-5-4 22:29:32 | 显示全部楼层
写的真的很不错
回复

使用道具 举报

0

主题

230

帖子

-39

积分

限制会员

积分
-39
发表于 2021-5-4 22:49:33 | 显示全部楼层
好帖,来顶下
回复

使用道具 举报

1

主题

268

帖子

-46

积分

限制会员

积分
-46
发表于 2021-5-4 23:09:36 | 显示全部楼层
过来看看的
回复

使用道具 举报

1

主题

257

帖子

-38

积分

限制会员

积分
-38
发表于 2021-5-4 23:29:43 | 显示全部楼层
不错
回复

使用道具 举报

1

主题

254

帖子

-53

积分

限制会员

积分
-53
发表于 2021-5-4 23:50:08 | 显示全部楼层
路过,支持一下啦
回复

使用道具 举报

1

主题

271

帖子

-43

积分

限制会员

积分
-43
发表于 7 天前 | 显示全部楼层
写的真的很不错
回复

使用道具 举报

0

主题

250

帖子

-20

积分

限制会员

积分
-20
发表于 7 天前 | 显示全部楼层
找到好贴不容易,我顶你了,谢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图版|手机版|小黑屋|汕头@IT精英团

Powered by Discuz! X3.4 © 2021 Comsenz Inc.

GMT+8, 2021-5-12 04:18 , Processed in 0.091240 second(s), 19 queries .

快速回复 返回顶部 返回列表