簡體   English   中英

刪除多對多的對象與Hibernate和Java的關聯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM