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();
在这一点上它是从表中消失了。
谢谢!
是的,你有手动。 – 2012-03-22 02:34:25
真的!?有没有这样的模式? – lsaffie 2012-03-22 02:54:49
只需使用“设置#删除”。 – 2012-03-22 03:04:27