先看一个例子:
假设我的工程中有个与user类(实体类,与数据库映射),userDao(继承自 AbstractHibernateDao),userService。在userService中运行这段代码:
void saveUser(user us){
//设us中name属性为a
userDao.save(us);
us.setName("b");
}
运行后数据库表中user表的name属性变为了”b”,新手的我觉得很奇怪,明明我修改us后没有对它进行保存,为什么会自动保存在数据库表中?
后来上网查找,发现了个hibernate缓存机制这个东西。
先介绍一下hibernate缓存机制,摘自
一、why(为什么要用Hibernate缓存?)
Hibernate是一个持久层框架,经常访问物理数据库。
为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。
缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件