gpt4 book ai didi

mysql - Mybatis delete 返回负值。这是为什么?

转载 作者:行者123 更新时间:2023-11-29 02:40:48 34 4
gpt4 key购买 nike

我有以下 mybatis 映射器和接口(interface)定义:

<delete id="deleteTestSet">
DELETE FROM projects_test_sets
WHERE project_id = #{testSet.project.id}
AND id = #{testSet.id}
</delete>

interface ITestSetRepository {

Integer deleteTestSet(@Param("testSet") TestSet testSet);

}

从代码调用时:

  Integer result = testSetRepository.deleteTestSet(testSet);

无论删除查询删除 0、1 还是多个条目,我都会返回结果值 -2147482646。

知道这是为什么吗?

数据库是MySQL 5.7.19-17

Mybatis版本:3.4.6

谢谢

最佳答案

当使用 mybatis BATCH 执行器时,操作不会立即执行。 Mybatis 只记录这样的操作应该执行的事实,它们的执行被延迟了。这就是映射器方法无法返回受影响的实际记录数的原因。它总是返回硬编码的负常量。

为了获得受影响的实际行数,您可以使用用 @Flush 注释的方法强制执行批处理:

@Flush
List<BatchResult> flush();

它会返回到目前为止在批处理中执行的每个操作的结果。

关于mysql - Mybatis delete 返回负值。这是为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52539904/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com