jpa中若是要級聯刪除一方對應的多方的記錄,必須在多對創建與一方之間的多對一關係,不然級聯刪除不了,以下:java
public class ChannelEntity implements java.io.Serializable { .... private List<ChannelDayLimitEntity> chanelDayLimits; @OneToMany(mappedBy="channel", cascade=CascadeType.REMOVE,orphanRemoval=true) public List<ChannelDayLimitEntity> getChanelDayLimits() { return chanelDayLimits; } public void setChanelDayLimits(List<ChannelDayLimitEntity> chanelDayLimits) { this.chanelDayLimits = chanelDayLimits; } } public class ChannelDayLimitEntity implements java.io.Serializable { ... private ChannelEntity channel; @ManyToOne(cascade = { CascadeType.REFRESH, CascadeType.MERGE }, optional = true) @JoinColumn(name = "channel_id") public ChannelEntity getChannel() { return channel; } public void setChannel(ChannelEntity channel) { this.channel = channel; } .... }
若是隻創建了單身的一對多關係,則只會執行update語句把多那方的關聯字段設置爲空.app