首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CascadeType.REFRESH实际上是做什么的?

CascadeType.REFRESH实际上是做什么的?
EN

Stack Overflow用户
提问于 2009-09-10 06:34:06
回答 2查看 65.6K关注 0票数 84

CascadeType.REFRESH实际上是做什么的?

它的定义是

当我们刷新实体时,此字段中保存的所有实体也会刷新

但这在实践中意味着什么呢?谁能给我举个简单的例子?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-10 06:57:53

单独的CascadeType描述可能有点令人困惑,但有一种简单的方法可以从一般情况中找出答案。

对于任何CascadeType值,这意味着如果在使用EntityManager接口的实例上调用操作X,并且该实例具有对其他实体实例的引用,并且该关联定义了CascadeType.X,则EntityManager操作也将应用于该关联实体。

因此,EntityManager.refresh()被定义为:

刷新数据库中实例的状态,覆盖对实体所做的更改(如果有)。

因此,如果实体A有对实体B的引用,并且该引用用@CascadeType.REFRESH注释,并且调用了EntityManager.refresh(A),那么EntityManager.refresh(B)也会被隐式调用。

票数 125
EN

Stack Overflow用户

发布于 2014-11-27 02:36:15

通过刷新检索:可以使用刷新方法从数据库重新加载托管对象:

内存中托管对象的内容将被丢弃(包括更改,如果有),并替换为从数据库检索到的数据。这可能有助于确保应用程序处理实体对象的最新版本,以防它在被检索后被另一个EntityManager更改。

来源:http://www.objectdb.com/java/jpa/persistence/retrieve

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1403681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档