CascadeType.REFRESH
实际上是做什么的?
它的定义是
当我们刷新实体时,此字段中保存的所有实体也会刷新
但这在实践中意味着什么呢?谁能给我举个简单的例子?
发布于 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)
也会被隐式调用。
发布于 2014-11-27 02:36:15
通过刷新检索:可以使用刷新方法从数据库重新加载托管对象:
内存中托管对象的内容将被丢弃(包括更改,如果有),并替换为从数据库检索到的数据。这可能有助于确保应用程序处理实体对象的最新版本,以防它在被检索后被另一个EntityManager更改。
https://stackoverflow.com/questions/1403681
复制相似问题