Hibernate二级缓存ehcache.xml配置文件怎么写


ehcache.xml 是 Ehcache 1.x/2.x 的 XML 配置文件,需置于 classpath 根目录;Hibernate 4.x/5.2- 依赖它实现二级缓存,而 Hibernate 5.3+ 推荐 JCache 抽象层。

hibernate二级缓存ehcache.xml配置文件怎么写

<p>ehcache.xml 是 Ehcache 1.x(常用于老版本 Hibernate,如 4.x)的缓存配置文件,放在 <strong>classpath 根目录</strong>(如 src/main/resources)下即可被 Hibernate 自动加载。注意:Ehcache 2.x 仍兼容此格式;Ehcache 3.x 已弃用 XML 配置,改用 J*a 或 YAML,且 Hibernate 5.3+ 默认推荐使用 JCache(JSR-107)抽象层。</p>

<H3>基础 ehcache.xml 结构(适配 Hibernate 4.x / 5.2 及以下)</H3>
<p>以下是最简可用、符合 Hibernate 二级缓存要求的配置示例:</p>
<pre class="brush:php;toolbar:false;"><font size="2"><?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="ehcache.xsd">

  <!-- 磁盘缓存路径,需确保应用有写权限 -->
  <diskStore path="j*a.io.tmpdir/ehcache"/>

  <!-- 默认缓存策略(Hibernate 未显式指定缓存策略时使用)-->
  <defaultCache
      maxEntriesLocalHeap="1000"
      eternal="false"
      timeToIdleSeconds="300"
      timeToLiveSeconds="600"
      overflowToDisk="true"
      diskPersistent="false"
      diskExpiryThreadIntervalSeconds="120"
      memoryStoreEvictionPolicy="LRU"/>

  <!-- 为具体实体类或集合配置缓存(必须)-->
  <cache name="com.example.User"
      maxEntriesLocalHeap="500"
      eternal="false"
      timeToIdleSeconds="60"
      timeToLiveSeconds="300"
      overflowToDisk="true"/>

  <!-- 缓存集合(如 User.roles)-->
  <cache name="com.example.User.roles"
      maxEntriesLocalHeap="100"
      eternal="false"
      timeToIdleSeconds="30"
      timeToLiveSeconds="120"
      overflowToDisk="true";/>

</ehcache></font>

关键配置项说明

  • diskStore path:建议用 j*a.io.tmpdir/ehcache 或绝对路径(如 /var/cache/myapp/ehcache),避免硬编码用户目录
  • maxEntriesLocalHeap:堆内最大缓存条目数,避免 OOM;按实体热度合理设置,不要盲目调大
  • eternal="false":必须设为 false,否则 timeToIdleSeconds / timeToLiveSeconds 不生效
  • timeToIdleSeconds:对象空闲多久后过期(不被访问)
  • timeToLiveSeconds:对象创建后多久强制过期(不管是否访问)
  • overflowToDisk:堆满后是否溢出到磁盘(开启需确保 diskStore 可写)
  • cache name:必须与实体类全限定名(package.ClassName)或集合属性路径(package.ClassName.propertyName)完全一致

Hibernate 端需配合的配置

仅配置 ehcache.xml 不够,还需在 Hibernate 配置中启用二级缓存:

Gaga Gaga

曹越团队开发的AI视频生成工具

Gaga 1151 查看详情 Gaga
  • hibernate.cfg.xml 或 application.properties 中添加:
<font size="2"><property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
<!-- 或用 SingletonEhCacheRegionFactory(单例模式,适合单应用)--></font>
  • 实体类上标注缓存策略:
<font size="2">@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) // 或 READ_ONLY, NONSTRICT_READ_WRITE
public class User { ... }</font>

常见问题提醒

  • 类名拼写错误(大小写、包名)、集合路径写成 User.roles 而非 com.example.User.roles → 缓存不生效
  • 忘记在实体类加 @Cache 注解 → 即使配置了 cache name 也无效
  • Ehcache jar 版本与 Hibernate 不匹配(如 Hibernate 4.3.x 应用 ehcache-core 2.6.x,不兼容 3.x)
  • 未设置 hibernate.cache.use_second_level_cache=true → 二级缓存被忽略

基本上就这些。配置不复杂但容易忽略细节,建议配完后通过日志(开启 org.hibernate.cache DEBUG)验证缓存命中情况。

以上就是Hibernate二级缓存ehcache.xml配置文件怎么写的详细内容,更多请关注其它相关文章!


# js  # java  # 转换成  # 实体类  # overflow  # 常见问题  # 配置文件  # ai  # app  # 编码  # 发光玩具做关键词排名  # 宝鸡网站seo推广营销  # 某某网站的推广  # 潮州谷歌网站推广  # 铜陵网站推广公司哪家好  # 南通高级seo主管  # seo优化课程培训  # 大鱼营销seo报价  # 网站建设销售创业  # 揭阳加强网站建设方案  # 相关文章  # 推荐使用  # 设为  # 放在  # 多久  # 如何将  # 转换为 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 苹果17 Pro如何启用分屏浏览_iPhone 17 Pro分屏浏览设置步骤  B站怎么开|直播| B站|直播|申请需要什么条件【新手必看】  163邮箱登录入口官网 163.com邮箱登录入口  抖音官网入口快速访问 抖音网页版账号注册解析  《饿了么》拼好饭点外卖教程2025  哈尔滨城市通昵称修改方法  Excel如何快速合并单元格内容_Excel文本合并与函数操作技巧  Win10共享文件夹设置方法 Win10局域网文件共享全攻略【教程】  管理打开的编辑器:固定、分组和关闭技巧  HTML中多图片上传与预览:解决ID冲突的专业指南  使用VS Code作为你的个人知识管理系统  解决PHP MySQL数据库更新无响应:SQL查询语法错误解析  《星露谷物语》克林特好感度事件介绍  顺丰快递收费标准查询_如何查看顺丰最新收费价格  深入理解随机递归函数的确定性:内部节点、叶节点与时间复杂度分析  抖音如何解除|直播|权限绑定_抖音关闭并解绑|直播|功能的方法  创客贴登录页面入口 创客贴网页版最新网址链接  优酷下载视频的清晰度怎么选_优酷缓存清晰度设置与选择指南  动漫岛汉化官网网 动漫岛官方动漫汉化地址  一点万象签到领积分指南  哔哩哔哩黑名单怎么查看  Python中安全地将环境变量转换为整数的类型注解指南  c++如何实现一个简单的RPC框架_c++远程过程调用原理与实践  《书耽》更换手机号方法  J*a中的值传递到底指什么_值传递模型在参数传递中的真正含义说明  附近酒吧怎么找?  火狐浏览器无法自动更新怎么办 手动更新火狐浏览器到最新版本【解决】  荣耀 Magic10 Pro 系统更新提示失败_荣耀 Magic10 Pro 升级修复  在J*a里什么是行为抽象_抽象行为对代码复用的提升作用  Animex动漫社正版在线入口 Animex动漫社动漫官方观看网  QQ邮箱手机版网页版 QQ邮箱登录入口地址  Sublime怎么快速复制文件路径_Sublime右键菜单增强技巧  DeepSeek超全面指南:入门必看  《密马》发布账号方法  《幻兽帕鲁》手游帕鲁捕捉技巧分享  家里的小飞虫总是不断,用什么方法可以彻底根除?  第五人格PC版怎么避免被封号_第五人格PC版防封号注意事项  微信网页版在线登录 微信网页版在线使用入口  教育查询官方网站入口 教育个人档案查询免费官网  《虎扑》取消评分记录方法  毒蘑菇VOLUMESHADER_BM官网首页登录入口 毒蘑菇VOLUMESHADER_BM官网首页登录入口说明  研招网官方网站招生平台入口_中国研究生招生信息网官网登录  顺丰快递单号查询寄件人 顺丰寄件人查询入口  Google Drive API 认证:服务账户与OAuth 2.0的选择与实践  喜茶GO更换登录账号方法  支付宝登录刷脸不是本人如何解决  PySimpleGUI中实现键盘按键与按钮事件绑定教程  苹果手机如何清理系统缓存数据 iPhone非越狱清理垃圾文件的技巧【系统优化】  Vue 3中独立响应式实例的创建与应用  如何在 WordPress 前端实现内容提交:古腾堡编辑器的替代方案与实践 

 2025-12-12

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.