0
我有3個表:播放列表,廣告,PlaylistadMap(連接表)@OneToMany保存重複的記錄
1- 播放列表:
@Entity
@Table(name = "playlist", catalog = "advertisedb")
public class Playlist implements java.io.Serializable {
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<PlaylistadMap> PlaylistadMaps = new HashSet<PlaylistadMap>(0);
}
2- 廣告 :
@Entity
@Table(name = "advertisement", catalog = "advertisedb")
public class Advertisement implements java.io.Serializable {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "advertisement")
private Set<PlaylistadMap> PlaylistadMaps = new HashSet<PlaylistadMap>(0);
}
3- PlaylistadMap:
@Entity
@Table(name = "playlist_ad_map", catalog = "advertisedb")
public class PlaylistadMap implements java.io.Serializable {
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "fk_advertisement", referencedColumnName = "pkid", nullable = false)
private Advertisement advertisement;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "fk_playlist", referencedColumnName = "pkid", nullable = false)
private Playlist playlist;
}
讓假設播放列表1具有在數據庫3個相關廣告:
(1,1)(1,2)(1,3) 如果我想3個廣告添加到舊的 所以列表進行更新將包含(1,1)(1,2)(1,3)(1,4)(1,5)(1, 6) 在DB中的記錄將爲:
(1,1)(1,2)(1,3)(1,1)(1,2)(1,3)(1,4)(1,5)(1,6)
我一定要手動刪除重複記錄通過刪除所有的記錄,然後插入新的?或者有關於這個問題的休眠解決方案。