日期:2014-05-18 浏览次数:20631 次
//----------------------------------------------
//staff 和 module 是多对多关系
@Entity
@Table(name="t_staffModule")
public class StaffModule {
private int moduleID;
private String nameSN;
private String nameCN;
private List<Staff> staffs;
@Id
@GeneratedValue
public int getModuleID() {
return moduleID;
}
//......
@ManyToMany(
cascade = {CascadeType.ALL},
mappedBy = "staffModules",
targetEntity = Staff.class
)
public List<Staff> getStaffs() {
return staffs;
}
public void setStaffs(List<Staff> staffs) {
this.staffs = staffs;
}
}
//-class staff----
@ManyToMany(
cascade = {CascadeType.ALL},
mappedBy = "staffModules",
targetEntity = Staff.class
)
public List<Staff> getStaffs() {
return staffs;
}
//-------------------
Staff sss = new Staff();
sss.setNickName("aaa");
List<StaffModule> staffModules = new ArrayList<StaffModule>();
StaffModule sm1 = new StaffModule(); sm1.setNameCN("模块1"); staffModules.add(sm1);
StaffModule sm2 = new StaffModule(); sm2.setNameCN("模块2"); staffModules.add(sm2);
StaffModule sm3 = new StaffModule(); sm3.setNameCN("模块3"); staffModules.add(sm3);
sss.setStaffModules(staffModules);
staffService.save(sss);//执行到这句时sql语句如下:
//------------------------------
2013-10-30 08:19:29,770 DEBUG SQL:111 - insert into t_staff (nickName, password, type, username) values (?, ?, ?, ?)
2013-10-30 08:19:29,770 DEBUG SQL:111 - insert into t_staffModule (nameCN, nameSN) values (?, ?)
2013-10-30 08:19:29,770 DEBUG SQL:111 - insert into t_staffModule (nameCN, nameSN) values (?, ?)
2013-10-30 08:19:29,770 DEBUG SQL:111 - insert into t_staffModule (nameCN, nameSN) values (?, ?)
// ******* 但是 中间表中没有数据。 这就是存在的问题 ********//
//--------------------
但是在 staffService.save(sss);这句后加上:
staffService.delete(30); //(sql语句如下)
这句,则三张表中的数据都是和期望的一样,该删的删了,保存的数据 三张表都有了。但是,为什么?????//*********//
(好像执行点什么其他的操作都可以使 保存实体操作 ,对应的 三张表都有数据)
//-------------
2013-10-30 08:22:36,801 DEBUG SQL:111 - insert into t_staff (nickName, password, type, username) values (?, ?, ?, ?)
2013-10-30 08:22:36,879 DEBUG SQL:111 - insert into t_staffModule (nameCN, nameSN) values (?, ?)
2013