1.transient状态
更新transient对象会报错。
更新自己设定id的transient对象可以(数据库有对应记录)
更新后除了设定更新的字段,其他字段会重置成null
@Test
public void testUpdate1() {
Student s = new Student();
s.setId(2);
s.setName("abc");
Session session = sf.getCurrentSession();
session.beginTransaction();
session.update(s);
session.getTransaction().commit();
}
2.persistent状态
persistent对象只要设定不同的字段内容就会发生更新
session对象commit之后,数据库记录会与缓存中的对象比较,如果不一致,就会自动发update语句
@T