这段时间想系统地研究下ehcache,就开始搜相关方面的博客/帖子,今天看到这篇博文(http://hi.baidu.com/eclipse256/blog/item/5443b35196623b1c367abebd.html)后有些不解之处,记录下来.
1.1. 数据库访问只有当检索的数据不在cache里可用时才必要。hibernate可以用两种不同的对象缓存:first-level cache 和 second-level cache。first-level cache和Session对象关联,而second-level cache是和Session Factory对象关联。
?1, 当DB中的数据有更后怎么处理? Hibernate自身好像有些配置可以做到.. 但做到的也只是用配置把缓存的时间缩短.也不能做到当DB中有数据变化时Hibernate来自动更新吧?
?2, 上面说first-levelCache跟Session关联的,而second-levelCache跟SessionFactory对象关联,这两种不同的关联有什么不同?在配置上有什么不同?
?3, " Hibernate用first-level cache主要是减少在一个事务内的sql查询数量。例如,如果一个对象在同一个事务内被修改多次,hibernate将只生成一个包括所有修改的 UPDATE SQL语句。为了减少数据流动,second-level cache在Session Factory级的不同事务之间保持load的对象,这些对象对整个应用可用,不只是对当前用户正在运行的查询。这样,每次查询将返回已经load在缓存里的对象,避免一个或更多潜在的数据库事务。"
first-level cache主要是针对一个单独事务做的缓存, 而second-level cache就是对整个Application做的缓存了. 那这两个层面的缓存都有同样的问题:若DB中数据有更新而缓存中数据还没有expire,这样就造成数据的不一致了.
这个问题的所帮助的是: 所有更新都是通过Hibernate自身的一级缓存来更新的,这样是否能顺手把缓存中的数据也更新下? 这样一来问题又变成Ehcache中的数据能否更新?如何配置?
还有一个问题就是: Hibernate会自动更新缓存里的数据,但这也仅仅是针对一个Session中的一个事务而言的,那若一个Session关闭后其缓存的数据不也就失去其意义了?对别的session又没有影响.
1.2 还是第一次对Jar包做整体的Mapping:
<property name="mappingJarLocations">
<list><value>file:dist/appfuse-dao.jar</value></list>
</property>
1.3 对hibernate获取的数据原来还可以有选择地配置: 默认是只对load来的数据有缓存,配置了hibernate.cache.use_query_cache true后才能对别的像findAll(),list(),createQueryt()这样方法返回的数据有缓存.那么一个问题是: 这样的方法命名有无规律? 比如说像convention over configuration这样的规则? 还是随意的?毕竟这些方法最终都转化为sql的select语句.这样Hibernate就可以对那样最终转化为sql中select语句的方法进行缓存了,而不仅仅是对load做缓存.
1.4 <cache usage="read-only"/> 既然有read-only,那也应该就有相应的"writable"配置.这个配置是有哪个文件中?ehcache的配置文件里?还是hibernate自身的配置文件里?
分享到:
相关推荐
编程随想博客文集 2010
博文记录.html
【标题】"博文视点专业书目2006年第一期"揭示了该压缩包内容的核心,即2006年度第一期的博文视点专业书籍目录。博文视点是一家知名的IT出版机构,以其深度的技术图书和教育资料在业界享有盛誉。这期目录可能包含了...
新浪博文下载工具1.1是一款专门针对新浪博客平台设计的实用型软件,旨在帮助用户方便快捷地下载并保存自己感兴趣的文章或连载小说。这款工具的主要功能是将博客内容转化为易于阅读和存储的TXT文本格式,使得用户可以...
dvwa安装记录,建议参考博文
- 当用户需要在同一个镜像文件夹内切换不同镜像文件时,可以使用此功能。 7. **卸载光盘**: - 在下拉菜单中选择“卸载光盘”,即可从虚拟光驱中移除当前加载的光盘镜像。 8. **加载本地ISO文件**: - 用户可以...
点击博文视点 HTTP协议 测试,http协议测试,不要下载,谢谢 点击博文视点 HTTP协议 测试,http协议测试,不要下载,谢谢 点击博文视点 HTTP协议 测试,http协议测试,不要下载,谢谢 点击博文视点 HTTP协议 测试,...
博文网碟是一款高效、便捷的虚拟光驱软件,专为用户打造无物理光驱环境下的光盘模拟解决方案。虚拟光驱技术允许用户在电脑上创建虚拟的光驱设备,无需实体光盘,即可读取和运行光盘镜像文件,极大地提高了工作效率和...
博文网蝶是一款备受推崇的虚拟光驱软件,它在IT行业内以其简单易用和功能全面而闻名。虚拟光驱是一种模拟真实光驱的软件工具,它允许用户在没有物理光盘的情况下,通过创建虚拟光盘镜像来运行光盘应用程序、安装软件...
博文·崔西的时间管理理念旨在帮助人们提升这方面的能力,同时结合职业生涯规划,以实现生活与工作的平衡。 首先,理解【时间的特性】至关重要。时间是不可逆的,每个人都拥有相同的一天24小时,但如何利用则各不...
博文图书销售管理系统是一款专为图书销售行业设计的高效管理软件,旨在帮助书店、图书馆或个人图书销售者优化库存管理、提升销售效率、跟踪销售数据,从而实现更科学的业务运营。该系统的出现,大大减轻了传统图书...
用于旅游博文的记录,可以拍照片,发微信,记录gps路径并在地图中显示分享日志到朋友圈,加驴友,查看附近的游客等.rar
一个Sqrt函数引发的血案-博文代码 博文地址:
博文图书销售管理系统
本软件LSGo来源于个人独创用于旅游博文的记录具有众多丰富的功能可以拍照片发微信记录gps路径并在地图中显示查看日志分享日志到朋友圈加驴友查看附近的游客等.rar,太多无法一一验证是否可用,程序如果跑不起来需要自...
博文网碟 虚拟光驱 ISO,用于打开ISO文件,非常好用
python爬取微博关键词搜索博文,只需要修改cookie和url参数
Sina博文采集工具源码 源码介绍: Sina博客采集器可以采集新浪博客指定目录页面的博客文章,软件也支持直接通过博客的地址来采集。 自动抓取sina博客的博文输出到txt文件 工具可能有一点小问题。但是值得学习的东西...
爬取博文内容: 1. 用 Jupyter Noteboke 打开; 2. 用到了requests库; 3. json() 函数; 4. to_excel函数储存数据;...第一次执行时,可能会弹出爬取失败的网址; 遇到这种情况,重复执行几次就OK了。