【发布时间】:2012-05-25 05:45:41
【问题描述】:
我有几个实体将被删除。这些实体将有几个多对多链接。更新多对多链接时,我想我将删除该实体的联接表中的原始链接,然后将链接替换为新链接。但我真的很困惑这将如何运作。如何更新多对多关系?删除也是如此。如果您设置了删除的级联,那么您实际上将删除该实体和与其链接的实体(集合,我相信的多个实体)。这将如何运作?
@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...我将该提供者列表设置为空(实际上从我希望的那个实体中删除该提供者列表)然后我将该提供者列表设置为一个新的提供者列表...我当然必须以编程方式设置该列表。这听起来可行还是太愚蠢了?
【问题讨论】: