Complains与Doctor表示多对多的关系:
public class Complains {
private long id;
private String date;
private Set<Doctor> doctor;
private String complainContent;
private String contacts;
private String type;
}
public class Doctor {
private long id;
private String doc_name;
private Department department;
private Set<Cure> cures;
private Set<Complains> complains;
}
映射配置文件Complains.hbm.xml
<set name="doctor" table="t_doctor_complains" cascade="all">
<key column="complainsId"></key>
<many-to-many class="Doctor" column="doctorId"/>
</set>
映射配置文件Doctor.hbm.xml
<set name="complains" table="t_doctor_complains" cascade="all">
<key column="doctorId"></key>
<many-to-many class="Complains" column="complainsId"/>
</set>
最终生成了三种表,t_complains, t_doctor, t_complains_doctor
但是我想在将Complains类存入数据库的时候,同时更新中间表。
所以我这么做:
Complains complains2 = new Complains();
complains2.setDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").for mat(new Date(System.currentTimeMillis())));
complains2.setComplainContent(complains);
complains2.setContacts(contacts);
Set<Doctor> doctorSet = new HashSet<>();
**doctorSet.add(doctor);** //这边添加了两个实体的Doctor
complains2.setDoctor(doctorSet);
complainsService.save(complains2); //调用session.save()原始方法
按道理来说应该会更新中间表的,但是中间表没有变化。为什么?