簡體   English   中英

為什么 mybatis 更新和刪除不起作用?

[英]why mybatis update and delete are not working?

我正在使用 myBatis 開發微服務,但 UPDATE 和 DELETE 語句在其中不起作用。 每當我執行它時,即使是簡單的更新語句也不會執行,只是卡住了,沒有響應

<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>

調用函數

session.update("test.update",map);

根據下面給出的 json 請求,映射包含 SET 和 WHERE 鍵和值

由於我使用 PUT 方法,因此我將 json 請求放入諸如 SET 和 WHERE 之類的地圖中。

{
"data":
[   
    {
        "set":
        [
            {
                "ID":"2",
                "NAME":"abc",
                "TYPE":"abc"
            }
        ],
        "where":
        [
          {

                 "NAME":"a",
                 "ID":"1"
          }
        ]
    }
]

}

我在日志中得到了正確的查詢,但是當我通過 POSTMAN 執行它時,我得到了這些,它表明它正在發送和加載並且不執行只是因為它正在發送但沒有響應。

此問題僅與刪除和更新查詢有關,其余工作正常。

郵遞員請求發送

謝謝@微笑。

我知道它失敗的原因。 我創建了一個 SqlSession 並且該會話正在被所有操作使用,並且該會話鎖定了我嘗試更新或刪除的行。

解決方案:-

  1. 為所有操作制作單獨的會話。

  2. 檢查 session 是否為 null 如果它指向某個其他先前的 session 並使其為 null 並使用 sqlSessionFactory 在其中分配新的 session 以便它不會鎖定行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM