举个部门、员工、角色的问题。
EmployeeDAO empdao = new EmployeeDAO();
Employee emp = empdao.getEmployeeById(Long.parseLong(request.getParameter("empid")),true);
long roleid = Long.parseLong(o.toString());
Role role = new RoleDAO().getRoleById(roleid,false);
emp.setRole(role);
empdao.makePersistent(emp);
在用以上代码更新某个员工的角色后,跳到一个显示页面,代码如下,显示一个部门的员工角色,
缓存,保存时使用flush
这是因为需要对session的缓存进行清理,当你清理后对数据的操作才会被更新!清理缓存的时间点有以下几种情况:
当应用程序调用net.sf.hibernate.Transaction的commit()方法的时候,commit()方法先清理缓存,然后再向数据库提交事务。
当应用程序调用Session的find()或者iterate()时,如果缓存中持久化对象的属性发生了变化,就会先清理缓存,以保证查询结果能反映持久化对象的最新状态。 当应用程序显式调用Session的flush()方法的时候。