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