判断规则:
1): 对象是否有OID;———可以理解对象的Id,数据库中的主键id
2): 判断对象是否被Session所管理(在一级缓存中).
2.临时/瞬时状态
没有oid,没有被session...--->设置hibernate.cfg.xml的属性:use_identifier_rollback=true
3.删除状态
特点:此时有OID,被Session所管理中,
但是最终会被删除(我们不关心删除状态的对象...删除状态的对象必须等到session刷新(flush),
事务提交时才真正从数据库中删除
1)游离状态到删除状态
游离状态:有oid,不被session管理
//游离状态—>删除状态
User...session中的方法仅仅是改变对象的状态,不发SQL:
3: 持久化对象的属性真正发生改变时,才会发生UPDAE语句.
----
发生SQL的时机:
默认情况下,在事务提交时,会自动去数据库同步这一次对象变化对应的...总结:由session的持久化方法修改对象的状态,
在同步session数据的时候(默认是提交事务,也可以是flush),
session再同步脏数据(一级缓存和一级快照中数据是否一致,不一致发送sql