1.session级别的缓存,同session绑定,生命周期和session相同,当session销毁,它也清除。
管理以及缓存的方法有clear(),evict()
clear清除session缓存,evict将某个对象清除缓存,相当于成为游离态detached。
2.
是实体级别的缓存,只有在查询对象级别的时候才用(这里说的是get,load方法通过id获取对象),使用HQL,SQL查询属性的时候不会使用一级缓存,切记!!
3.每一个session实例绑定一个数据库事务,当执行一个数据库事务的时候,都应该先创建一个新的hibernate session实例。
session.beginTransaction(); //由session开启一个事务