惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Cloudflare Blog
U
Unit 42
D
Docker
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
Recent Announcements
Recent Announcements
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
V
Visual Studio Blog
I
InfoQ
Google DeepMind News
Google DeepMind News
小众软件
小众软件
L
LangChain Blog
C
Check Point Blog
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
J
Java Code Geeks
罗磊的独立博客

博客园 - xiaosonl

产品的简单性 关于过度设计的思考(上) 让ASP.NET MVC的Controller输出不同类型数据 学习手札#2 故事点和小时数的思考 学习笔记#1 键值对数据库 SQLite数据迁移 探讨一种在Silverlight不普及情况下的部署策略 有用的文档 Silverlight产品布署策略 探讨一种Silverlight的异步编程模式 代码的注释 下半年要看完消化的技术类书籍 中小型企业的人员流失 谈谈Ruby On Rails和ASP.NET 工作中的系统学习 Uml中的关联与依赖关系 TDD与重构设计 C#中使用位运算来实现权限管理 Silverlight中JavaSciprt无法访问托管类抽象成员的解决方法
学习手札#3 NHibernate缓存
xiaosonl · 2010-06-06 · via 博客园 - xiaosonl

2010-06-06 00:49  xiaosonl  阅读(348)  评论(0)    收藏  举报

NHibernate主要有三种缓存:

1. 一级缓存.

一级缓存的生命周期和作用域只在同一Session中, 以[主键-对象]方式存放.

2. 二级缓存.

二级缓存的生命周期和作用域在同一SessionFactory中, 同样以[主键-对象]方式存放.  二级缓存的读取读取优先级不如一级缓存高, 所以当SessionA和SessionB中都存在同一对象的一级缓存时, 其中一个Session更新对象缓存, 另一个Session会因为优先读取一级缓存而返回未更新的对象.

3. 查询缓存.

查询缓存的生命周期和作用域同样只于同一SessionFactory中, 以[查询语句-对象ID序列]方式存放, 即只缓存查询结果集的所有对象ID. 当查询数据发生改变(增加、删除、修改等),查询缓存会将其从缓存中删除. 该过程比较不透明, 建议使用查询缓存还是根据程序业务来制定较好.