hibernate对象状态
问题:
问题1: 主键生成策略不同,save操作时发送INSERT语句的时机不同.
* native: 在保存对象时,发送SQL....问题2: 删除对象的时候,没有立刻发生DELETE语句,而是在提交事务的时候发送的....问题3: 为什么在事务环境下,通过get方法得到的对象,只要修改了属性值,会发生UPDATE语句.
hibernate执行流程,不能从发送sql角度去理解,应该从对象状态方向去理解。...判断规则:
1): 对象是否有OID;———可以理解对象的Id,数据库中的主键id
2): 判断对象是否被Session所管理(在一级缓存中).
2.临时/瞬时状态
没有oid,没有被session...--->设置hibernate.cfg.xml的属性:use_identifier_rollback=true
3.删除状态
特点:此时有OID,被Session所管理中,
但是最终会被删除(我们不关心删除状态的对象