亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mybatis-plus插入失敗的問題及解決

 更新時間:2023年11月03日 14:36:50   作者:Starry...  
這篇文章主要介紹了mybatis-plus插入失敗的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

mybatis-plus插入失敗

如果你也是這種錯誤代碼

{
    "timestamp": "2023-07-29T09:23:17.218+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.wang.entity.Users' with value '1685219432365821953' Cause: java.lang.IllegalArgumentException: argument type mismatch",
    "path": "/api/insertUser"
}

那么估計也是這個問題,這是由于數(shù)據(jù)庫中的id設置為自增之后,調用接口是傳入的JSON數(shù)據(jù)不帶id或者id為null的時候,由于MyBatis的自動映射機制,會嘗試把查詢結果中的每一列,映射到對應的Java對象屬性中。

所以在插入完成后,MyBatis還會試圖把生成的id,映射設置到Users對象的id屬性中。

但因為你沒有傳id參數(shù),導致類型不匹配,從而報錯。

解決方法

調用接口時id設置為0,或者在接口上設置user.setId(0);

Mybatis Plus插入數(shù)據(jù)事務控制常見異常、報錯問題

報錯:

No value for key,Transaction is already completed,ResultSet is from UP

場景:

在手動控制事務中,使用全局事務管理器對象,正常插入數(shù)據(jù)、或批量、或使用線程池開啟多線程批量插入數(shù)據(jù),都有可能出現(xiàn)以下錯誤

錯誤一

No value for key [xxx] bound to thread

解決:

1、由于手動控制事務釋放資源時,需要開啟一個統(tǒng)一管理的全局事務

2、此錯誤是聲明式事務和手動控制事務相沖突,如果在代碼中有涉及到手動控制注入數(shù)據(jù)源事務管理Bean對象 DataSourceTransactionManager,如果出現(xiàn)上述問題,請開啟聲明事務:

@Transactional(rollbackFor = {Exception.class})

3、如果方法內部調用的保存或刪除方法也走Spring事務管理、或者內部方法開啟的有新的事務,那么內部方法也要開啟聲明式事務:@Transactional(rollbackFor = {Exception.class})

        sysUserAddressList.forEach(obj -> {
            synchronized (obj) {
                save(obj);
            }
        });

錯誤二

ResultSet is from UPDATE. No Data

解決:

1、首先檢查SQL語法是否正確,保證SQL語句沒問題

2、有可能是同一時間進入了多條SQL語句,再釋放結果集對象的時候沖突,需要考慮線程安全問題,在需要同步的代碼對象加上synchronized 同步鎖關鍵字,例如:

        sysUserAddressList.forEach(obj -> {
            synchronized (obj) {
                save(obj);
            }
        });

3、若是在JDBC工具類中將Connection,PreparedStatement或ResultSet定義成全局靜態(tài)變量,則要考慮線程安全問題

錯誤三

Transaction is already completed - do not call commit or rollback more than once per transaction

解決:

1、手動控制事務,提示很明顯,已完成的事務,不要多次提交或回滾

2、在提交或回滾事務之前,先判斷該事務狀態(tài)是否完成即可:

                transactionStatuses.forEach(status -> {
                    if (!status.isCompleted()) {
                        dataSourceTransactionManager.commit(status);
                    }
                });

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 詳解Java的Struts框架中注釋的用法

    詳解Java的Struts框架中注釋的用法

    這篇文章主要介紹了詳解Java的Struts框架中注釋的用法,Struts是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • SpringCloud實戰(zhàn)之Feign聲明式服務調用

    SpringCloud實戰(zhàn)之Feign聲明式服務調用

    這篇文章主要介紹了SpringCloud實戰(zhàn)之Feign聲明式服務調用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • 解決Java壓縮zip異常java.util.zip.ZipException:duplicate entry:問題

    解決Java壓縮zip異常java.util.zip.ZipException:duplicate entry

    這篇文章主要介紹了解決Java壓縮zip異常java.util.zip.ZipException:duplicate entry:問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java實現(xiàn)簡單的ATM項目

    java實現(xiàn)簡單的ATM項目

    這篇文章主要為大家詳細介紹了java實現(xiàn)簡單的ATM項目,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • java多態(tài)中的就近原則介紹

    java多態(tài)中的就近原則介紹

    大家好,本篇文章主要講的是java多態(tài)中的就近原則介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 解決Intellij IDEA 使用Spring-boot-devTools無效的問題

    解決Intellij IDEA 使用Spring-boot-devTools無效的問題

    下面小編就為大家?guī)硪黄鉀QIntellij IDEA 使用Spring-boot-devTools無效的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 使用springboot訪問圖片本地路徑并映射成url

    使用springboot訪問圖片本地路徑并映射成url

    這篇文章主要介紹了使用springboot訪問圖片本地路徑并映射成url的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 淺談Java中@Autowired和@Inject注解的區(qū)別和使用場景

    淺談Java中@Autowired和@Inject注解的區(qū)別和使用場景

    本文主要介紹了淺談Java中@Autowired和@Inject注解的區(qū)別和使用場景,@Autowired注解在依賴查找方式和注入方式上更加靈活,適用于Spring框架中的依賴注入,而@Inject注解在依賴查找方式上更加嚴格,適用于Java的依賴注入標準,感興趣的可以了解一下
    2023-11-11
  • 詳解mybatis #{}和${}的區(qū)別、傳參、基本語法

    詳解mybatis #{}和${}的區(qū)別、傳參、基本語法

    這篇文章主要介紹了mybatis #{}和${}的區(qū)別、傳參、基本語法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java Kafka實現(xiàn)延遲隊列的示例代碼

    Java Kafka實現(xiàn)延遲隊列的示例代碼

    kafka作為一個使用廣泛的消息隊列,很多人都不會陌生。本文將利用Kafka實現(xiàn)延遲隊列,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下
    2022-08-08

最新評論