您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

休眠:无法执行本机批量操作查询

休眠:无法执行本机批量操作查询

数据库中使用参数化查询(预备语句)时,为参数分配值不得更改查询的结构和执行路径(否则数据库不会将其视为参数化查询,并且会引发异常)。

这就是为什么您不能为查询准备语句的原因:

因为为每个参数分配一个值会更改查询的执行路径(请记住,准备好的语句的查询将被解析一次并产生一个执行路径)。

相同的规则适用于Hibernate查询解析器,您不应为参数分配会更改查询结构的值。

一个带有值的字符串分配1, 2, 3给SHOULD-TO-BE-A-NUMBER参数是相同的,实际上,第一个查询将被翻译为相同,update weight_note_receipt set pledge_id =:pledge where wn_id = :wns但第二个update weight_note_receipt set pledge_id =:pledge where (wn_id = :x1 or wn_id = :x2 or wn_id = :x3)查询将被翻译为,显然,不同的查询具有不同的执行路径。

因此,即使Hibernate没有抛出异常,您的数据库也会抛出异常。

其他 2022/1/1 18:12:31 有696人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶