Hibernate:如何进行 EXISTS 查询? (不是子查询)

2024-04-06

例如:

EXISTS ( SELECT * FROM [table] WHERE ... )

如何使用 Hibernate 进行这样的查询?


HQL不允许使用exists陈述。UPD从 Hibernate 5 开始它支持将其作为 WHERE 中的谓词 https://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/Hibernate_User_Guide.html#hql-exists-predicate

您可以使用多种方法:

  1. 对于 Hibernate 5:您可以对同一个表使用子查询boolean exists = session.createQuery("select 1 from PersistentEntity where exists (select 1 from PersistentEntity p where ...)").uniqueResult() != null;。感谢以下作者。
  2. count(*) > 0但这对性能不利当可以使用 EXISTS() 时,避免在 SQL 中使用 COUNT() https://blog.jooq.org/2016/09/14/avoid-using-count-in-sql-when-you-could-use-exists/
  3. Use boolean exists = session.createQuery("from PersistentEntity where ...").setMaxResults(1).uniqueResult() != null;但这将迫使 Hibernate 加载所有字段并使水合作用为对象,即使您只需要检查 null 也是如此。
  4. Use session.get(PersistentEntity.class, id) != null如果您启用二级缓存,这会工作得更快,但如果您需要更多标准,这将是一个问题id.
  5. 您可以使用以下方法:getSession().createQuery("select 1 from PersistentEntity where ...").uniqueResult() != null)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate:如何进行 EXISTS 查询? (不是子查询) 的相关文章

随机推荐

  • 表不必要的冗余

    我的物品列出如下 当然这只是一个总结 但我正在使用 详细信息 表中显示的方法来表示一种 继承 类型 可以这么说 因为 项目 和 可下载 将是相同的 除了每个都有一些相关的附加字段只对他们而言 我的问题是在这个设计模式中 这种事情在我们的项目
  • 当前不会命中断点。该文档尚未加载任何符号

    我用谷歌搜索了这个特定问题 但似乎找不到可行的解决方案 症状 在 Web 应用程序项目中的 aspx 页面的代码隐藏中添加断点后 该断点在页边空白处显示为一个空心的红色圆圈 圆圈右下角有一个用黄色三角形括起来的感叹号 将鼠标悬停在断点上时
  • 使用自定义对象的 JTable、JComboBox

    您好 如果您将 JComboBox 放入 JTable 中并将 String 数组放入 JComboBox 中 则一切正常 如果您将自己的数据类型放入 JComboBox 则在同一列中选择值会变得很复杂 这是官方示例 http docs o
  • 在单调递增然后递减的序列 cera 中查找一个数

    查找单调增加然后单调减少的序列中的最大值或最小值可以在 O log n 内完成 但是 如果我想检查一个数字是否存在于这样的序列中 这也可以在 O log n 中完成吗 我认为这是不可能的 考虑这个例子 1 4 5 6 7 10 8 3 2
  • 如何创建元组数组?

    我知道要在 C 中创建元组 我们使用以下格式 Tuple
  • Azure SQL 数据库 Bacpac 本地还原

    我使用 Azure 管理控制台中的 导出 选项创建了 Azure SQL 数据库的 BACPAC 备份 将其下载到我的计算机后 我对如何将其恢复到本地 SQL Server 实例有点困惑 我遇到了 DacImportExportCli 工具
  • 在 Visual Studio 中使用 FFmpeg

    我正在尝试在 Visual Studio 2010 的 C 项目中使用 FFmpeg 我想将这些库作为静态链接文件包含在内 简单的程序如libavcodec api example c http cekirdek pardus org tr
  • 寻找Excel自定义函数工具提示

    这个问题已经被asked https stackoverflow com questions 4262421 how to put a tooltip on a user defined function before https stac
  • 关于映射和迭代器的理论澄清

    如果我有一个带有地图作为私有成员的类 例如 class MyClass public MyClass std map
  • 添加样式以回显[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想为这个 php echo 添加一
  • 如何从 javascript 数组推送 JSON 中的元素

    我想将 javascript 数组值添加到 JSON 值对象中 其他元素也替换了我的元素 如收件人 主题 消息 我得到的 Json 如下 下面是我的代码 var BODY recipients values subject title bo
  • 在 MySQL 中获取下个月的第一个和最后一个日期

    如何在 where 子句中使用下个月的第一天和最后一天 Use SELECT DATE SUB LAST DAY DATE ADD NOW INTERVAL 1 MONTH INTERVAL DAY LAST DAY DATE ADD NO
  • FileOutputstream.close() 并不总是将字节写入文件系统?

    看完之后这个答案 https stackoverflow com questions 7849528 fileoutputstream close is really slow when writing large file 7849941
  • 设置 WebRequest 的正文数据

    我正在 ASP NET 中创建一个 Web 请求 我需要向正文添加一堆数据 我怎么做 var request HttpWebRequest Create targetURL request Method PUT response HttpW
  • GitHub 的 GPG 公钥是什么?

    如果您通过 GitHub 网站进行编辑 或合并拉取请求 则生成的提交将自动使用 GitHub 的 GPG 密钥进行签名 它看起来像这样 我希望拥有完整的公钥 以便我可以将其添加为我的系统上的可信密钥 GitHub 的 GPG 公钥是什么 G
  • 在 Windows 记事本的 Python 中创建 UTF-16 换行符

    在 Ubuntu 中运行的 Python 2 7 中 这段代码 f open testfile txt w f write Line one encode utf 16 f write u r n encode utf 16 f write
  • HTML LocalStorage 中的数据在其他窗口/选项卡中可用所需的时间

    我有一个使用 HTML LocalStorage 的网页 同时打开此页面的多个选项卡 窗口是很常见的 由于这些都使用相同的 LocalStorage 并且 LocalStorage 不提供事务或类似功能 因此我想实现某种形式的互斥 以防止不
  • 我如何将变量传递给谷歌云函数

    我目前正在创建一个云任务 它将定期将新数据导入到 automl 数据集中 目标是 GCP 云函数 http 目标 因为我不想在云函数中对数据集 ID 进行硬编码 我希望它接受来自 Web UI 的数据集 ID 因此我用这种方式输入flask
  • Ionic 本机 Google 地图 Android 无法正常工作

    我必须在我的项目中添加带有 Google 地图的视图 我跟着官方 ionic 本机 Google 地图文档 https ionicframework com docs native google maps 但它不起作用 我将背景颜色粉红色分
  • Hibernate:如何进行 EXISTS 查询? (不是子查询)

    例如 EXISTS SELECT FROM table WHERE 如何使用 Hibernate 进行这样的查询 HQL不允许使用exists陈述 UPD从 Hibernate 5 开始它支持将其作为 WHERE 中的谓词 https do