Hibernate、HQL 和带限制的更新

2023-12-14

是否可以限制使用 Hibernate/HQL 更新的行数?例如:

Query q = em.createQuery("UPDATE MyObj o Set o.prop = :prop");
q.setParameter("prop", "foo");
q.setMaxResults(myLimit);

int res = q.executeUpdate();
if (res > myLimit) {
    // This is entering here and I don't want it to!
}

我一直在谷歌搜索等,我正在尝试使用 HQL,以便我可以在内存数据库中使用 HSQL DB 以及在部署中使用 MySql 进行一些单元测试。 MySql 支持 Update 语句上的 Limit 子句,但 HSQL 不支持,并且在 HSQL 中使用内部 select 执行 UPDATE 需要 order by,这似乎是一个坏主意。有没有办法实现限制更新中的行数?

Thanks.


尝试 HSQLDB 2.0(最新的快照 jar,不是 GA)与 Hibernate 3.5.5

它确实需要最后带有 LIMIT 的内部选择,但这不再需要 ORDER BY。此外,如果 ORDER BY 与 SELECT 使用的索引相同,则 ORDER BY 可以使用索引。

一个例子是这样的:

UPDATE MyObj o SET o.prop = :prop WHERE o.id IN (SELECT id FROM MyObj LIMIT 10)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate、HQL 和带限制的更新 的相关文章

随机推荐

  • 使用 Google Drive api 文件列表时,在父级中使用“root”时,根目录下不会显示文件夹

    当我在Q中的parents中设置 root 时 我只想查看根目录下的文件夹和文件 但我只能看到一个标题为 入门 的pdf文件 我用的是C 代码 我的文件夹在哪里 但是当我在代码中按名称 例如 name Folder1 搜索时 我可以看到文件
  • 在 D3 中更改每个堆积条形图的颜色为不同颜色

    这涉及到为堆叠条形图的每个条形分配不同的颜色 因为目前所有四个条形图中只有单一颜色 并且堆叠条形图中的颜色正在变化 但我也尝试为所有四个条形分配不同的颜色堆叠值 这是代码 var margin top 20 right 160 bottom
  • 通过服务帐户和 OAuth2 向 Google Drive 进行身份验证时出现 401 响应

    我试图让 Java 应用程序访问存储在我的 GoogleDrive 文件夹中的文件列表时似乎遇到了困难 这 我在开发者控制台中有一个项目设置 我已经为该项目启用了 Drive API 我已经为服务帐户创建了身份验证凭据 并且正在使用生成的
  • 如何在按钮单击事件上从 DataGridView 填充文本框

    我想从 DataGridView 控件填充按钮单击事件的数据 我的代码是这样的 for int i 0 i lt dgv EmpAttList Columns Count i txt EnrollNo Text this dgv EmpAt
  • 在 R 中转换 data.frame

    我有以下数据框 foo lt data frame abs cbind rnorm 3 rnorm 3 mean 8 rnorm 3 mean 9 rnorm 3 mean 1 colnames foo lt c w x y z rowna
  • 返回双精度数组的导出函数

    在 Golang 中如何导出返回双精度数组的函数 以前可能的方式现在似乎返回 运行时错误 cgo 结果有 Go 指针 export Init func Init filename string C int unsafe Pointer va
  • indexOf 区分大小写吗?

    indexOf String 方法区分大小写吗 如果是这样 是否有不区分大小写的版本 The indexOf 方法均区分大小写 您可以通过预先将字符串转换为大写 小写来使它们 粗略地 以一种破坏的方式 但适用于很多情况 不区分大小写 s1
  • 递归代替多个嵌套的 for 循环?

    我在尝试更新嵌套 for 循环以使用递归时遇到一些问题 使用递归时是否可以从早期的 for 循环访问 a b 和 c 变量 下面是我尝试将其转换为递归调用的简单示例 for int a 0 a lt 10 a for int b 0 b l
  • 防止Fragment的restoreViewState()

    我有一个对象Foo可以使用片段进行配置 FooFragment Foo 类包含对 FooFragment 的静态引用和方法公共片段 getConfigurationFragment 此方法将当前对象分配给 FooFragment 并返回它
  • 处理导航栏按钮事件时应用程序崩溃

    在我的应用程序中 我有一个导航栏按钮 允许用户弹回到导航堆栈的顶部 这已经存在了一段时间并且一直运行良好 但是 当我使用 MT 4 0 构建时 它崩溃了 in constructor UIButton btn UIButton FromTy
  • 在 WPF 应用程序中显示 PDF [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 关于如何在 WPF Windows 应用程序中显示 PDF 文件有什么想法吗 我正在使用以下代码来运行浏览器 但是Browser Navigate方法没有做任何事情 WebBrows
  • 我需要在 HTML 中转义什么(JSON 响应)

    我的 JSON 响应如下所示 rc 200 test user div class sub1 div class avatar a href blah blah a br strong 0 strong div div class sl p
  • 使用 C# 比较 SQL Server 中的两个日期时间值

    我想知道如何比较两个日期时间值 一个是从 sql 数据库检索的 另一个是用 c 获取的当前日期时间值 Beware when comparing DateTimes generated within C The DateTime struc
  • 为什么赋值运算符应该返回对象的引用?

    我正在对 C 进行一些修改 并且目前正在处理运算符重载 特别是 赋值 运算符 我在网上查找并发现了多个讨论该问题的主题 在我自己的笔记中 我把所有的例子都记下来了 比如 class Foo public int x int y void o
  • 使用 Logstash,如何根据每行匹配相同的时间戳来组合行?

    MarkLogic 日志文件通过打印具有相同时间戳 精确到毫秒 的行来表示多行 您可以在这段代码中看到这一点 2014 05 09 18 47 33 844 Info Dev Xdbc file store get file xqy url
  • 在android中读取所有联系人的电话号码

    我使用此代码来检索所有联系人姓名和电话号码 String projection new String People NAME People NUMBER Cursor c ctx getContentResolver query Peopl
  • Mysql按工作日分组,填写缺少的工作日

    我的 MySQL 查询有问题 该查询按工作日对表中的数据进行分组 我需要它来填充数据中缺失的工作日 例如下面 SQL 示例中的星期日 工作日 7 SQL小提琴 MySQL 5 6 架构设置 create table test id INT
  • Django - 过滤外键属性

    我正在尝试根据特定字段的值过滤 Django 中的表ForeignKey 例如 我有两个模型 class Asset models Model name models TextField max length 150 project mod
  • HttpPost -> 重定向 -> 所需响应的位置或正文

    以下 Java 代码将数据 POST 到网站 然后作为响应进行重定向 状态 302 它在我的 PC Eclipse Java Ubuntu 上完美运行 完全符合我的要求 我尝试了一切来发布代码功能 但我就是做不到 Java代码 Prepar
  • Hibernate、HQL 和带限制的更新

    是否可以限制使用 Hibernate HQL 更新的行数 例如 Query q em createQuery UPDATE MyObj o Set o prop prop q setParameter prop foo q setMaxRe