[英]Deleting Objects in Many to Many association with Hibernate and Java
我一直在尋找幾天,但似乎無法找到答案。
鑒於此多對多(員工/會議)
@Entity
@Table(name="EMPLOYEE")
public class Employee {
@Id
@Column(name="EMPLOYEE_ID")
@GeneratedValue
private Long employeeId;
@ManyToMany(cascade = {CascadeType.ALL})
@JoinTable(name="EMPLOYEE_MEETING",
joinColumns={@JoinColumn(name="EMPLOYEE_ID")},
inverseJoinColumns={@JoinColumn(name="MEETING_ID")})
private Set<Meeting> meetings = new HashSet<Meeting>();
}
@Entity
@Table(name="MEETING")
public class Meeting {
@Id
@Column(name="MEETING_ID")
@GeneratedValue
private Long meetingId;
@ManyToMany(mappedBy="meetings")
private Set<Employee> employees = new HashSet<Employee>();
}
我可以將員工添加到會議中,並顯示在employee_meeting表中。
當我獲得會議對象並將其刪除時,它也會從聯接表中消失,但仍保留在員工集中......這是預期的行為嗎?
這是我刪除會議對象的方法
session.delete(meeting);
transaction.commit();
在這一點上,它從桌子上消失了。
謝謝!
是的,這是正確的行為。 如果您有多對多關系,則需要手動刪除它。 請參考此鏈接了解hibernate集合映射策略
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.