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没有抛出异常,你的数据库也会如此. (编辑:十堰站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – 数据源的自动提交应该设置为false吗?
- php – MySQL选择datetime字段,其中date等于今天
- MySql将值从一行复制到另一行
- mysql – 为什么在排序的东西上添加索引会减少排序中的工作
- php – 使用Eloquent查询耗尽了允许的内存限制
- mysql select query给出结果,其中ID(数字)等于文本
- mysql从转储加载:第13行的错误1452(23000):无法添加或更新
- 将PHP PDO查询编写为`dbName` .tableName`而不是`tableName
- 如何在python3中导入mysqlclient
- php – 如何在mysql表中插入中文字符?