1,Hibernate中Session简介
Session接口是Hibernate向应用程序提供的操纵数据库的最主要的接口,他提供了基本的保存、更新、删除和加载Java对象的方法。Session具有一个缓存,位于缓存中的对象称为持久化对象,他和数据库中的相关记录对应,Session能够在某些时间点,按照缓存中对象的变化来执行相关的SQL语句,来同步更新数据库,这一过程称为清理缓存(flush)。
站在持久化层的角度,Hibernate把对象分为4中状态:持久化状态、临时状态、游离状态和删除状态。Session的特定方法能够使对象从一个状态转到另一个状态。
2,理解Session的缓存
Java对象在JVM中的生命周期:当应用程序中通过new关键字创建一个Java对象时,JVM会为他分配一块内存空间,只要这个对象被引用变量引用,他就会一直存在于内存中。如果不被任何引用变量引用,他就会结束生命周期,此时JVM的垃圾回收器会在适当的时候回收它占用的内存。
所以如果希望一个对象A一直处于生命周期中,就必须保证至少有一个变量引用它,或者可以从其他处于生命周期中的对象B导航到这个对象A,比如在对象B的Java集合属性中存放了对象A的引用。在Session接口的实现中包含了一些列的Java集合,这些Ja