1. 缓存
现在我所知道的Hibernate的缓存有:
- 一级缓存:位于session内部的缓存
- 二级缓存:SessionFactory的外置缓存
- SessionFactory的内置缓存
一级缓存和二级缓存都位于持久层,存放的都是数据库数据的拷贝;SessionFactory内置缓存存放的是元数据和预定义SQL,是只读缓存。
缓存的三大作用:
- 减少数据库的访问频率,提高访问性能;(Q: 缓存位于持久层,那么就是存放在本地的文件,什么时候将缓存的内容读入内存?不读入内存是否存在访问持久层的时间和资源消耗?)
- 保证缓存对象与数据库的同步,位于缓存中的对象称为持久化对象;(Q:这个应该是Hibernate缓存实现应该保证的问题??)
- 当持久化对象之间存在关联时,session保证对象图不会出现死锁。(不能理解)