🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、概述 JPA支持两级缓存(JPA1.0只支持一级缓存); 一级缓存(或叫内置缓存)为持久性上下文范围内的缓存,它属于事务范围(线程级别)的缓存,无需额外配置,自动加载;如hibernate中session级别的缓存,当进行数据操作时,只要没有进行事务的提交操作,再次进行数据的操作不会进行数据库的操作,而是直接获取缓存中的数据; 二级缓存(或叫外置缓存)通常是用来提高应用程序性能的,它属于进程范围或集群范围的缓存,它基于EntityFactory进行缓存,犹如hibernate中SessionFactory级别的缓存,它一般用于**经常被阅读到很少被修改**的数据中;它可以避免访问以已经从数据库加载的数据,提高访问未被修改数据对象的速度; ## 二、方案 二级缓存通常用来提高性能,同时,使用二级缓存可能会导致提取到“陈旧”数据,容易出现并发问题。所以二级缓存最好是用在经常阅读数据,比较少更新数据的情况,而不应该对重要数据使用二级缓存;