如何仅在会话级别启用休眠查询缓存?

2024-01-05

如果我有一个查询在单个线程中被多次调用,并且我只想为该线程(或为该会话缓存该查询(及其结果),因为我每个线程使用一个会话),该怎么办?我这样做?

注意:我的二级缓存已打开,但主要用于 session.get(...)。但我不想将它用于我的查询缓存,因为我只需要它在我的线程( / session )期间存在。

Thanks


这里的底线是:您可以手动缓存查询结果,也可以要求 Hibernate 来执行此操作。虽然将查询缓存生存期限制为会话的生存期通常没有什么意义,但可以使用以下方法来完成:

1) 启用查询缓存 https://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch20.html#performance-querycache

2) 为相关查询指定一个特定区域并将其标记为可缓存:

Query query = ...;
query.setCacheable(true).setCacheRegion("MY_SPECIAL_QUERY");

3)在会话结束时从缓存中逐出您的查询(如果您REALLY确保这就是您想要做的):

SessionFactory sessionFactory = ...;
sessionFactory.evictQueries("MY_SPECIAL_QUERY");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅在会话级别启用休眠查询缓存? 的相关文章

  • 使用 boost::thread 特定的 ptr<>::get() 是否会很慢?有什么解决方法吗?

    我目前正在使用 Valgrind 的 Callgrind 分析一个存在性能问题的应用程序 在查看分析数据时 似乎有 25 的处理时间花费在boost detail get tss data在主要目的是物理模拟和可视化的应用程序中 get t
  • 通过推送通知唤醒

    Suppose 有一些对象 例如 一个数组a 和依赖于对象的条件 例如 a empty 当前线程以外的某些线程可以操作该对象 a 因此条件评估值的真实性会随着时间的推移而变化 如何让当前线程在代码中的某个时刻休眠 并在条件满足时通过推送通知
  • 如何在 JPQL 或 HQL 中进行限制查询?

    在 Hibernate 3 中 有没有办法在 HQL 中执行相当于以下 MySQL 限制的操作 select from a table order by a table column desc limit 0 20 如果可能的话 我不想使用
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 使我的 COM 程序集调用异步

    我刚刚 赢得 了在当前工作中维护用 C 编码的遗留库的特权 这个dll 公开使用 Uniface 构建的大型遗留系统的方法 除了调用 COM 对象之外别无选择 充当此遗留系统与另一个系统的 API 之间的链接 在某些情况下 使用 WinFo
  • Django HTTPS 和 HTTP 会话

    我使用 Django 1 1 1 和 ssl 重定向中间件 通过 HTTPS 创建的会话数据 身份验证等 在站点的 HTTP 部分中不可用 无需将整个站点设置为 HTTPS 即可使其可用的最佳方法是什么 这是设计使然 您无法轻易更改 当通过
  • @TableGenerator 的初始值属性在 Hibernate 中显示问题,但在 JPA 中则不然

    package com sb firstjpaexample pojo import javax persistence Column import javax persistence Entity import javax persist
  • 调试 Java InterruptedException,即查找原因

    在调试Android应用程序时 有时中断异常发生并使应用程序崩溃 我已经能够在默认异常处理程序上设置断点 但调用堆栈不提供信息 at java util concurrent locks AbstractQueuedSynchronizer
  • 从 Invoke 方法获取 RETURN

    我正在尝试从另一个线程上的列表框项目中读取值 我尝试创建一种新方法来运行调用命令 我可以设法将命令发送到列表框 例如通过调用方法添加 但我似乎无法得到响应 我似乎无法获取该项目的值 我尝试了几种方法 一旦我将它从空变为字符串 事情就开始变得
  • 如何在Spring-Boot中创建DefaultMessageListenerContainer?

    我是 Spring Boot 的新手 并尝试创建 DefaultMessageListenerContainer 以便我可以使用 weblogic workmanager 并以多线程方式运行多个消息侦听器 有人可以提供一些例子吗 到目前为止
  • 在会话 cookie 中存储大量数据会产生什么影响?

    谁能解释一下在会话中存储大量数据的缺点或给我指出一些阅读材料 我也很感兴趣在会话中存储数据和从数据文件读取数据之间是否有任何区别 如果您在会话中存储大量数据 则输入 输出性能会下降 因为会有大量读取 写入 默认情况下 PHP 中的会话存储在
  • org.hibernate.MappingException:实体映射中序列的增量大小设置为 [10],而 ... 大小为 [1]

    更新到 Spring Boot 2 2 和相关的 Hibernate 5 4 x 时我们遇到了问题 我们确实有以下序列生成器 Id GeneratedValue strategy GenerationType SEQUENCE genera
  • “一对多”属性值类型不应是“持久实体”

    我有 1 个用户访问许多其他域 并将其放入我的代码中 用户等级 import org hibernate annotations Cascade import org hibernate annotations CascadeType im
  • 什么时候可以在 Java 中使用 Thead.stop() ?

    Thread stop 的 Java 文档听起来好像如果您调用 Thread stop 世界就会终结 已弃用 这种方法本质上是不安全的 停止线程 Thread stop 导致它解锁所有已锁定的监视器 作为未经检查的 ThreadDeath
  • VB - 以隐式方式链接 DLL

    我正在开发 VB6 图形界面 并且需要隐式链接到 DLL 这样做的动机来自于我上一个问题 https stackoverflow com questions 5194573 有问题的 DLL 使用静态 TLS declspec thread
  • 服务器上的 Rails 会话

    我想让一些 Rails 应用程序在不同的服务器上共享同一个会话 我可以在同一服务器内完成此操作 但不知道是否可以在不同服务器上共享 有人已经做过或者知道怎么做吗 Thanks Use the 数据库会话存储 https github com
  • pthread_cond_timedwait() 和 pthread_cond_broadcast() 解释

    因此 我在堆栈溢出和其他资源上进行了大量搜索 但我无法理解有关上述函数的一些内容 具体来说 1 当pthread cond timedwait 因为定时器值用完而返回时 它如何自动重新获取互斥锁 互斥锁可能被锁定在其他地方 例如 在生产者
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • Java、Spring、Hibernate找不到org.springframework.orm.hibernate3.LocalSessionFactoryBean

    我正在尝试制作 spring hibernate ant 项目 目前我收到此错误 HTTP Status 500 type Exception report message description The server encountere

随机推荐

  • python3.6 - TypeError:write() 参数必须是 str,而不是 bytes - 但不涉及文件

    以下代码返回错误 我不明白为什么 在Python 3 6上运行 import subprocess import sys import os def execute shell cmd cmd process subprocess Pope
  • Qt 上的“GLib-ERROR **:无法创建管道主循环唤醒:打开的文件太多”

    我正在 Ubuntu 上工作 当我运行程序大约 1 小时后 我收到此错误 GLib ERROR 无法创建管道主循环唤醒 打开的文件太多程序意外完成 当我使用 gdb 运行时 它不会崩溃 我不明白为什么 以及此错误的原因是什么 非常感谢 打开
  • 后台模式下的 iOS 区域监控

    我在我的应用程序中使用区域监控 但遇到了一个问题 但找不到任何答案 区域监控在后台模式下如何工作 根据位置感知 PG 的说法 每次用户的当前位置 跨越边界区域 系统 生成适当的区域事件 为您的应用程序 如果你的 应用程序已经在运行 这些 活
  • 寻找一个 Perl 模块来在共享 RAM 中存储哈希结构

    我想将数据结构持久存储在 RAM 中 并可以从预分叉中访问它 Perl 中的 Web 服务器进程 理想情况下 我希望它的行为类似于 memcached 但不需要单独的守护进程 有任何想法吗 Use 缓存 FastMmap http sear
  • 定义中的预处理器指令? [复制]

    这个问题在这里已经有答案了 可能的重复 C 预处理器 在 define 中使用 if https stackoverflow com questions 2831934 c preprocessor using if inside defi
  • 检测零分和交叉中获胜的比赛

    我需要知道在圈和十字游戏中检测获胜动作的最佳方法 源代码并不重要 我只需要一个示例或可以开始的东西 我唯一能想到的就是使用循环并测试玩家所做的每个动作的每个方向 以搜索例如连续五个 有没有更快更有效的方法呢 真正简单的解决方案是从最后一步开
  • Haskell 中的多核编程 - Control.Parallel

    我正在尝试学习如何使用Control Parallel模块 但我认为我没有理解正确 我正在尝试运行以下代码 fibs hs import Control Parallel fib Int gt Int fib 0 0 fib 1 1 fib
  • 如何使用 Java 8 中的流将列表中的对象按属性分组到其他列表中?

    我想对包含以下内容的对象列表进行分组time属性分为 5 分钟间隔 最好使用流和收集器 我在 StackOverflow 上找到的唯一可能的解决方案是计算我需要多少个间隔 子列表 将每个对象添加到每个列表中 并过滤掉不适合相应时间范围的对象
  • php中如何检查文件路径是否为图像?

    我有一个表存储 images documents pdf 等的文件路径 我的查询是 Select File Paths from Uploads 现在我如何使用 PHP 检查文件路径是否是图像 如果是图像我必须查看它或下载它 老好获取图像大
  • 有没有一种干净的方法来阻止 windows.h 创建近和远宏?

    在 WinDef h 的深处有一段来自分段内存时代的遗迹 define far define near 如果您尝试使用近或远作为变量名称 这显然会导致问题 有什么干净的解决方法吗 其他然后重命名我的变量 您可以安全地取消定义它们 这与其他人
  • 将用户控件添加到 wpf 窗口

    我创建了一个用户控件 但是当我将其添加到窗口中的 XAML 时 Intellisense 不会拾取它 并且我不知道如何将其添加到窗口 您需要在窗口标签内添加引用 就像是 xmlns controls clr namespace YourCu
  • 在 C# 中支持 VB.NET 的导入命名空间功能

    我习惯VB NET 我正在学习的游戏源代码是用C 编写的 我觉得很烦人 我必须添加using System Diagnostics到源代码以便输入Debug WriteLine 我在项目属性下进行了检查 但找不到允许我将命名空间添加到导入的
  • Spring框架是否支持多部分请求中的流模式

    我在中找不到任何指示Spring文档 http static springsource org spring docs 1 2 x reference mvc html它支持在处理多部分请求的 MultipartHttpServletReq
  • 如何强制 Internet Explorer 使用元标记中给出的编码?

    我正在尝试准备一个包含英语和阿拉伯语混合内容的演示 html 页面 基本上它包含一个小桌子 左边是英语短语 右边是阿拉伯语翻译 因为我不懂阿拉伯语 所以我从 中取出了阿拉伯字母的前三个字符统一码参考 http www unicode org
  • 如何在 Visual Studio 2013 调试会话期间编辑日期时间变量

    如果我放置断点并导致代码执行在我希望测试 DateTime 变量值的行暂停 则 Visual Studio 2013 调试器将以 10 1 2017 12 的形式显示 DateTime 变量的值 00 00 AM 当我悬停它甚至允许我开始编
  • 如何从分离的视图控制器中呈现视图控制器?

    我试图以模态方式呈现一个视图控制器并获得著名的Presenting view controllers on detached view controllers is discouraged错误 我进行了研究 一致的解决方案似乎是由家长进行演
  • sk paymentqueue canmake payment内存泄漏检查

    I run Instrument去检查Leaks在我的应用程序中 又有 1 条新泄漏 SKPaymentQueue canMakePayments 每次启动时甚至没有调用付款代码 根据这个日期 SKPaymentQueue s CanMak
  • 在 Go 中,将接收者变量命名为“self”是误导还是好的做法?

    我看过相当多的关于 Go 的博客和视频 据我记得 没有一个作者在编写方法时使用 self 或 this 作为接收者变量 然而 似乎有很多关于堆栈溢出的问题可以做到这一点 这让我思考这是否会误导将变量命名为 self 阅读规格方法集 http
  • 如何查看 MultipartForm 请求的内容?

    我正在使用 Apache HTTPClient 4 我正在做非常正常的多部分工作 如下所示 val entity new MultipartEntity HttpMultipartMode BROWSER COMPATIBLE entity
  • 如何仅在会话级别启用休眠查询缓存?

    如果我有一个查询在单个线程中被多次调用 并且我只想为该线程 或为该会话缓存该查询 及其结果 因为我每个线程使用一个会话 该怎么办 我这样做 注意 我的二级缓存已打开 但主要用于 session get 但我不想将它用于我的查询缓存 因为我只