Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么mybatis更新和删除不起作用?_Java_Spring Boot_Mybatis_Spring Mybatis - Fatal编程技术网

Java 为什么mybatis更新和删除不起作用?

Java 为什么mybatis更新和删除不起作用?,java,spring-boot,mybatis,spring-mybatis,Java,Spring Boot,Mybatis,Spring Mybatis,我正在使用myBatis开发一个微服务,但是UPDATE和DELETE语句在其中不起作用。 即使是简单的update语句在我执行时也不会执行,只是卡住了,没有响应 <update id = "update" parameterType="map"> UPDATE TESTDB SET <foreach item = "entry" index = "key" separator = "," collec

我正在使用myBatis开发一个微服务,但是UPDATE和DELETE语句在其中不起作用。 即使是简单的update语句在我执行时也不会执行,只是卡住了,没有响应

<update id = "update" parameterType="map">
        UPDATE TESTDB 
             SET
                <foreach item = "entry" index = "key" separator = "," collection = "SET">
                     ${key} = #{entry}
                </foreach>

            WHERE
                <foreach item = "entry" index = "key" separator = "AND" collection = "WHERE">
                     ${key} = #{entry}
                </foreach>

    </update>
我在日志中得到了正确的查询,但当我通过POSTMAN执行时,我得到了这些, 它显示它正在发送和加载,并没有执行,只是在发送,但没有响应

此问题仅在删除和更新查询rest正常工作时出现

谢谢@Smile

我知道它失败的原因。我已经创建了一个SqlSession,该会话正被所有操作使用,并且该会话将锁定我尝试更新或删除的行

解决方案:-

  • 为所有操作创建单独的会话

  • 检查会话是否为null,如果会话指向 使用sqlSessionFactory创建其他以前的会话并在其中分配新会话,这样它就不会锁定行

  • 谢谢你的微笑

    我知道它失败的原因。我已经创建了一个SqlSession,该会话正被所有操作使用,并且该会话将锁定我尝试更新或删除的行

    解决方案:-

  • 为所有操作创建单独的会话

  • 检查会话是否为null,如果会话指向 使用sqlSessionFactory创建其他以前的会话并在其中分配新会话,这样它就不会锁定行


  • 你能在更新片段中对查询进行硬编码吗?我已经尝试过简单的更新查询,但结果都是一样的,只是停留在更新和删除查询中,其余的都在工作fine@EshuYadav出现这种问题的一个常见原因是另一个会话锁定了行您正在尝试更新或删除。@EshuYadav当您从其他工具(如SQLDeveloper)执行更新语句时,更新语句是否有效?@Smile Yeah from SQLDeveloper这些更新查询执行得很好。您是否可以尝试在更新片段中对查询进行硬编码?我已经尝试过简单的更新查询,但结果相同,只是停留在更新和删除中删除查询rest正在工作fine@EshuYadav出现这种问题的一个常见原因是另一个会话锁定了您试图更新或删除的行。@EshuYadav当您从其他工具(如SQLDeveloper)执行时,update语句是否有效?@Smile yes from SQLDeveloper这些更新查询执行得很好。
    {
    "data":
    [   
        {
            "set":
            [
                {
                    "ID":"2",
                    "NAME":"abc",
                    "TYPE":"abc"
                }
            ],
            "where":
            [
              {
    
                     "NAME":"a",
                     "ID":"1"
              }
            ]
        }
    ]
    
    }