hibernate缓存机制有一级缓存和二级缓存,查询缓存。
其中一级缓存,也可以叫做session缓存,即如果当前session关闭了,重新打开一个session,之前session的查询对应的在内存中缓存中的持久化对象就没有了,需要重新查询数据库。 Session为应用程序提供了两个管理缓存的方法: evict(Object obj):从缓存中清除参数指定的持久化对象。 clear():清空缓存中所有持久化对象,flush():使缓存与数据库同步。
hibernate没有实现自己的二级缓存,而是使用第三方的插件。
二级缓存是sessionfactory范围内的缓存。
查询缓存,要求查询语句以及参数都一致,hibernate才能从缓存中取得数据,所以只有经常用到的同一个查询用查询缓存,才有可能提高程序性能。