【hibernate】Session缓存

来源:互联网 发布:免费pdf合并软件 编辑:程序博客网 时间:2024/05/21 20:26
  Session 接口是 Hibernate 向应用程序提供的操纵数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载 Java 对象的方法.

  Session 具有一个缓存, 位于缓存中的对象称为持久化对象, 它和数据库中的相关记录对应. Session 能够在某些时间点, 按照缓存中对象的变化来执行相关的 SQL 语句, 来同步更新数据库, 这一过程被称为刷新缓存(flush)

  理解缓存就要先理解对象在JVM中的声明周期,当应用程序通过new创建一个对象时,jvm会给对象分配一块内存,只要这个对象被引用变量引用,就一直存在内存中。

  Java集合中存放的是Java对象的引用,当向集合中添加一个对象时,其实是把对象的引用添加到了集合中。在 Session 接口的实现中包含一系列的 Java 集合, 这些 Java 集合构成了 Session 缓存. 只要 Session 实例没有结束生命周期, 且没有清理缓存,则存放在它缓存中的对象也不会结束生命周期


Session的缓存的作用

  1.Session 缓存可减少 Hibernate 应用程序访问数据库的频率

  2.当缓存中持久化对象存在循环关联关系时,Session保证不出现访问对象图的死循环

  3.数据库中记录与缓存中对象同步

原创粉丝点击