2012-03-22 69 views
3

我一直在尋找天,但似乎無法找到答案。刪除對象與Hibernate和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(); 

在這一點上它是從表中消失了。

謝謝!

+0

是的,你有手動。 – 2012-03-22 02:34:25

+0

真的!?有沒有這樣的模式? – lsaffie 2012-03-22 02:54:49

+0

只需使用「設置#刪除」。 – 2012-03-22 03:04:27

回答

相關問題