我有一个与“商家”(多对一)相关的“节日”实体,商家与“类别”(多对一)有关
在我的一个页面中,我加载所有类别,然后获取商家列表,在用户选择喜欢的商家后,我加载商家节日列表。最后,当用户删除喜欢的节日时,我将其删除:em.remove()
但删除的节日仍然存在于Merchant的节日列表中,还有category.merchantList(n).festival(m)!
所以当我重新加载页面时,我发现已删除的节日,而不再是数据库了!
那么我应该如何更新商家和类别实体?!
答案 0 :(得分:0)
使用双向实体关系,您需要维护关系的两个方面。这意味着您需要从包含它的集合中删除festival
(在您的情况下为merchant.festivals
)。
当只涉及两个实体时,这是一项简单的任务。在更复杂的模型中,更改/删除某个实体后,可以更轻松地从数据库中刷新所有相关数据。这是因为em.remove()
会将delete
语句激活到数据库中,导致删除该行,但需要与已经加载到实体管理器缓存中的实体同步。