我有几个实体将被删除。这些实体将有一对多对多链接。在更新多对多链接时,我想我只会删除该实体的连接表中的原始链接,只需用新链接替换该链接即可。但我真的很困惑这是如何工作的。你如何更新多对多关系?同样的事情是删除。如果你有删除集的级联,那么你基本上会删除该实体和链接到它的实体(集合,我相信的多个实体)。这会怎么样?
@Entity
@Table(name="QUICK_LAUNCH")
public class QuickLaunch implements Serializable {
...
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(name="QUICK_LAUNCH_PROVIDER",
joinColumns=@JoinColumn(name="QUICK_LAUNCH_ID"),
inverseJoinColumns=@JoinColumn(name="RESOURCE_ID"))
private List<Provider> providerList;
}
我的想法是,我会删除指向提供商的任何链接,只需添加新链接。我可以以编程方式执行此操作,只需删除链接表中的链接,但我觉得应该由ORM处理(这是一种不合理的感觉吗?)。
有没有人对删除多对多关系有任何一般的智慧之词,
也许我可以使用实际实体删除和更新关系...
就像说我有一个提供者列表的quickLaunch ...我将提供者列表设置为null(有效地从我希望的那个实体中删除提供者列表)然后我将提供者列表设置为新的提供者列表......我当然必须以编程方式设置该列表。这听起来是可行的还是只是愚蠢的?
答案 0 :(得分:1)
这是要做的事情: