Hibernate的Session介绍[转 adoocoke]
Session Session是Hibernate向应用程序提供操作数据的主要接口, 他提供了保存、更新、删除、加载Java对象的方法。 Session的缓存 Session有一个缓存,用来缓存Java对象。 一般的数据库操作,都要从先从Session的缓存中获取,如果缓存中获取不到,hibernate才会去数据库中获取。 缓存的作用 缓存的作用不言而喻。 1、减少数据访问的频率。2、保持保证数据相关记录与缓存中的同步。 清理缓存 Session的save、update、delete方法, 只有在清理缓存的时候才向数据库中执行一条Sql语句。 所以, Session清理缓存的时间点,是个关键概念。 Session会在一下几个时间点清理缓存,并执行相关语句: a、当应用程序调用 org.hibernate.Transaction 的 commit() 方法的时候, commit() 方法先 清理缓存,然后再向数据库提交事务。 b、当应用程序通过 Hibernate 的 Query查询接口等执行查询操作 时,如果缓存中持久化对象的属性发生了变化,就会先清理缓存,以保证查询结果能反映持久化对象的最新状态。 c、当应用程序显式调用 Session 的 flush() 方法的时候。 Java对象在Hibernate中的状态 介绍缓存的方法之前,先介绍一下java对象在缓存中的几种状态