Parent Child 上下文混淆和并发问题
Parent Child Context Confusion & Concurrency issues
我几乎不怀疑 parent child 上下文 set-up 以及数据的行为方式。任何人都可以建议 link 在那里我可以找到关于它们如何工作的正确解释。
几点和观察
- Parent 上下文充当 child 上下文的存储 :- 但是 parent 中的更改不会反映在 child 中。
问题 1:如果 parent 上下文充当 child 上下文的存储那么为什么 parent 中的更改没有反映出来在 child 上下文中,而 child 获取它们。
观察:
- 插入 parent :- Child 提取请求得到那些 objects.
- Update/delete a object in parent :- 然后获取请求没有得到更新的 object 而是它为我们提供了 object in child 上下文,因此如果我们需要更新的 object,我们必须重置上下文,但这样我们将丢失 child 上下文中的所有更改或刷新 object。
问题 2: Child 覆盖 parent 上下文值。因此,如果用户在 parent 上下文中修改了某些内容并且 child 也修改了相同的内容,那么用户的更新将丢失。在涉及到关系之前,这不是什么大问题。
假设实体 A、B 之间存在一对多关系 (A->>B)。
Parent 上下文:向实体 A 插入一个新的 child 说 Child-1.
Child 上下文:删除实体 A 及其所有 child。
所以现在当 child 保存到 parent 上下文时,它会删除实体 A 及其旧的 child,新插入的 child-1 保留在具有空引用的上下文 parent。
我该如何解决这个问题?
问题 1
因为你已经获取了数据,如果你想像你说的那样强制获取你应该重置上下文或刷新对象。
问题 2
如果你想在删除父实体A时总是删除实体B,你可以尝试使用级联删除。
我几乎不怀疑 parent child 上下文 set-up 以及数据的行为方式。任何人都可以建议 link 在那里我可以找到关于它们如何工作的正确解释。
几点和观察
- Parent 上下文充当 child 上下文的存储 :- 但是 parent 中的更改不会反映在 child 中。
问题 1:如果 parent 上下文充当 child 上下文的存储那么为什么 parent 中的更改没有反映出来在 child 上下文中,而 child 获取它们。
观察:
- 插入 parent :- Child 提取请求得到那些 objects.
- Update/delete a object in parent :- 然后获取请求没有得到更新的 object 而是它为我们提供了 object in child 上下文,因此如果我们需要更新的 object,我们必须重置上下文,但这样我们将丢失 child 上下文中的所有更改或刷新 object。
问题 2: Child 覆盖 parent 上下文值。因此,如果用户在 parent 上下文中修改了某些内容并且 child 也修改了相同的内容,那么用户的更新将丢失。在涉及到关系之前,这不是什么大问题。
假设实体 A、B 之间存在一对多关系 (A->>B)。
Parent 上下文:向实体 A 插入一个新的 child 说 Child-1.
Child 上下文:删除实体 A 及其所有 child。
所以现在当 child 保存到 parent 上下文时,它会删除实体 A 及其旧的 child,新插入的 child-1 保留在具有空引用的上下文 parent。
我该如何解决这个问题?
问题 1 因为你已经获取了数据,如果你想像你说的那样强制获取你应该重置上下文或刷新对象。
问题 2 如果你想在删除父实体A时总是删除实体B,你可以尝试使用级联删除。