一级缓存的生命周期:因为hibernate的一级缓存是存储在session中,所以它的生命周期跟session一样。
一级缓存的安全性:因为一级缓存存储的数据都是私有数据,并且一级缓存存储的数据在session中,所以它的数据是线程安全的。
怎样把数据放到一级缓存中?使用session.save()/update()/get()/load(),
关于代码的测试,就是使用同样的方法再进行相同的操作,看他们会不会发出同样的sql语句。
怎样把数据库中的信息同步到缓存中?使用session.refresh() ,这个方法的作用 就是再次向数据库中发送请求,读取数据
session.flush的作用:
先判断要操作的对象是否为持久化对象,
是:根据操作,检测在执行完”unit method“后该对象及其级联对象的变化,然后发出相应的sql语句。
否:发出insert语句。
如果使用hibernate操作存储一个百万级条记录,可以使用flush方法来
刷新记录,然后再配合session.clear()来防止内存溢出。
都在说hibernate的一级缓存缓存很强大,我想强大就强大在,没有接触新的api,就在我们不知不觉中操作。