摘要:
Hibernate 与数据库中的触发器协同工作时, 会造成两类问题 1触发器使 Session 的缓存中的持久化对象与数据库中对应的数据不一致:触发器运行在数据库中, 它执行的操作对 Session 是透明的 Session 的 解决方案: 在执行完 Session 的相关操作后, 立即调用 Ses... 阅读全文
摘要:
Hibernate并没有给出直接调用数据库的存储过程的API,所以咋们就要通过调用原生的的connection对象来实现对存储过程的条用Hibernate调用存储过程的步骤: 1:获得原生connection对象: 1)调用Session的doWork()方法,并在doWork()方法里... 阅读全文
摘要:
持久化对象有以下几种状态:临时对象(Transient): 在使用代理主键的情况下, OID 通常为 null 不处于 Session 的缓存中 在数据库中没有对应的记录 持久化对象(也叫”托管”)(Persist): OID 不为 null ... 阅读全文
摘要:
首先咋们看一个图:flush:首先箭头是由缓存指向数据库,即当我调用Session.flush()方法时它会强制使数据库的记录跟缓存中的对象状态保持同步 ,如果不一致,就会发送Sql语句,保持一致,而Hibernate在Session的声明周期能自动感知缓存对象的状态是否和数据库一致,如果不一致,会... 阅读全文