Hibernate快照
l当session加载了某个对象后,会为该对象的值类型的属性复制一份快照。当刷出缓存时,通过比较对象的当前属性和快照,来判断对象的哪些属性发生了变化。
代码如下:
1 /** 2 * 修改学生信息 3 */ 4 @Test 5 public void update(){ 6 Session session = HibernateUtils.getSession(); 7 Transaction transaction = session.beginTransaction(); 8 9 try { 10 11 Student stu = (Student) session.get(Student.class, 8); 12 stu.setStuName("李四2"); 13 14 //这里不执行update操作,数据库仍热会发生变化,因为持久化对象已经与快照不同 15 // session.update(stu); 16 17 transaction.commit(); 18 } catch (Exception e) { 19 transaction.rollback(); 20 e.printStackTrace(); 21 22 } 23 finally{ 24 session.close(); 25 } 26 }