hibernate操作只支持操作自己的查询对象。这是关键,而且对象关联也只能是自己创建的,可以更改,但不可以被覆盖,可以清空!
sysRole.getSysRole_PowerList().clear();
1这个表示去掉他们的级联关系,才能删除他的级联中的对象,不然关键不对称
for (int i = 0; i
{
sysRole.getSysRole_PowerList().add(t.getSysRole_PowerList().get(i));
}
2
所以才会有,不能增加一个新list,因为这个新的list,不是他的原生对象,不能覆盖,所以只能单条的增加到原生的对象中!!才会成功
try
{
SysRole sysRole = this.sysRoleDaoImpl.getByIdT(t);
List list = new ArrayList();
list=sysRole.getSysRole_PowerList();
sysRole.getSysRole_PowerList().clear();
for (int i = 0; i
{
sysRole_PowerDaoimpl.removeT(list.get(i));
}
sysRole = this.sysRoleDaoImpl.getByIdT(t);
for (int i = 0; i
{
sysRole.getSysRole_PowerList().add(t.getSysRole_PowerList().get(i));
}
sysRole.setSysRole_name(t.getSysRole_name());
sysRole.setSysRole_note(t.getSysRole_note());
sysRole.setSysRole_state(t.getSysRole_state());
this.sysRoleDaoImpl.updateT(sysRole);
} catch (Exception e)
{
e.printStackTrace();
}