java – Hibernate:无法执行本机批量操作查询
尝试使用本机SQL更新数据时出现此错误.这是我的脚本:
wns是包含多个wn_id的字符串,如下所示:
当我更新(使用query.executeUpdate())时,它会抛出以下错误:
是因为输入字符串太长了吗? 最佳答案 在数据库(预准备语句)中进行参数化查询时,为参数赋值绝不能改变查询的结构和执行路径(否则数据库不会将它们视为参数化查询并抛出异常). 这就是为什么你不能为以下查询准备好的语句: >从myTable订单中选择*? 因为为每个参数赋值会更改查询执行路径(请记住,预处理语句的查询会被解析一次并产生单个执行路径). 相同的规则适用于Hibernate查询解析器,您不应为参数分配更改查询结构的值. 将值为1,2,3的字符串分配给SHOULD-TO-BE-A-NUMBER参数是相同的,实际上第一个查询将被翻译为与更新weight_note_receipt相同的set pledge_id =:pledge其中wn_id =: wns但第二个将被翻译为update weight_note_receipt set pledge_id =:pledge where(wn_id =:x1或wn_id =:x2或wn_id =:x3),显然是具有不同执行路径的不同查询. 所以即使Hibernate没有抛出异常,你的数据库也会如此. (编辑:百色站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- MySQL或Rails在特定日期范围内每天获得AVG的最佳方式
- MySql和phpMyAdmin之间的区别
- php – 如何将包含引号的字符串插入数据库?
- -bash:./ configure:没有这样的文件或目录 – 在Mac OS X
- mysql – 同步本地和现场wordpress数据库的推荐最佳工作流程
- 如果表中不存在,MySQL将字段选择为NULL
- 索引长度过长 ERROR 1071 (42000): Specified key was too
- php – 使用Eloquent查询耗尽了允许的内存限制
- php – 使用不同的SQL查询多次将此MySQL重复为CSV
- php – MySQL:在不破坏外键约束的情况下消除重复行