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没有抛出异常,你的数据库也会如此. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 我应该在Node.js(Express)应用程序中将MySQL客户端定义在哪
- MYSQL数据库mysql提示[Warning] Invalid (old?) table or d
- 如何从MYSQL中的另一个查询结果中减去查询结果
- php运行一次并在mysql数据库中插入两次
- MySQL列数据以逗号分隔列表的形式返回
- Mysql实例Mysql数据库中把varchar类型转化为int类型的方法
- sqlserver 查询数据库中所有表的metadata
- PHP – 在多维数组中存储mysql_fetch_assoc
- 用于将.DBF文件转换为.MYSQL的PHP脚本
- MYSQL数据库mysql中limit的用法深入分析