zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Hibernate一级缓存常用API

hibernate缓存API 常用 一级
2023-09-14 09:02:01 时间

一级缓存特点:

  1. 当我们通过session的save,update saveOrupdate进行操作时,如果一级缓存中没有对象,会将这些对象从数据库中查询到,存储到一级缓存。
  2. 当我们通过session的load,get,Query的list等方法进行操作时,会先判断一级缓存中是否存在,如果没有才会从数据库获取,并且将查询的数据存储到一级缓存中。
  3. 当调用session的close方法时,session缓存清空。

常用API

clear 清空一级缓存.
evict 清空一级缓存中指定的一个对象。
refresh重新查询数据库,用数据库中信息来更新一级缓存与快照

update

udpate操作它主要是针对于脱管对象,持久对象具有自动更新能力。
问题1:如果我们直接操作的对象是一个脱管对象,执行update会出现什么情况?
Update操作时,如果对象是一个脱管对象,可以操作,它会将脱管对象转换成持久对象在操作
如果在session中出现相同的oid两个对象,会产生异常

脱管对象的oid如果在数据表中不存在,会否报异常?

所以:在操作中,建议我们通过持久化对象来直接修改其操作。

saveOrUpdate

如果对象是一个瞬时对象 ——–执行save操作
如果对象是一个脱管对象———执行update
如果是一个持久对象——-直接返回

delete

删除一个脱管对象,与session关联,在删除
注意:如果执行delete操作,先删除一级缓存,在删除数据库中的数据。