CascadeType.REFRESH实际上做了什么?
实际上做了什么?CascadeType.REFRESH
它的定义是
当我们刷新一个实体时,此字段中保存的所有实体也会刷新
但这在实践中意味着什么呢?有人可以给我一个简单的例子吗?
实际上做了什么?CascadeType.REFRESH
它的定义是
当我们刷新一个实体时,此字段中保存的所有实体也会刷新
但这在实践中意味着什么呢?有人可以给我一个简单的例子吗?
单个 CascadeType 描述可能有点令人困惑,但有一种简单的方法可以从一般情况下找出它。
对于任何值,这意味着如果使用接口在实例上调用操作,并且该实例具有对其他实体实例的引用,并且该关联已定义,则该操作也将应用于该关联实体。CascadeType
X
EntityManager
CascadeType.X
EntityManager
所以被定义为:EntityManager.refresh()
从数据库刷新实例的状态,覆盖对实体所做的更改(如果有)。
因此,如果实体 A 具有对实体 B 的引用,并且该引用用 注释并调用,则也隐式调用。@CascadeType.REFRESH
EntityManager.refresh(A)
EntityManager.refresh(B)
通过刷新进行检索:可以使用刷新方法从数据库中重新加载托管对象:
将丢弃内存中托管对象的内容(包括更改(如果有),并将其替换为从数据库中检索的数据。这可能有助于确保应用程序处理实体对象的最新版本,以防万一自检索以来另一个 EntityManager 可能已更改它。