saveOrUpdate : 一次踩坑


記一次mybatis使用的踩坑記錄:

  在使用mybatis的時候會覺得很方便,但是今天在使用saveOrUpdate出現一個報錯,原因是我在update 的時候除了主鍵 其他字段是null,在第一次調取的時候插入正常返回

 

 

 但是當第二次調取的時候是更新字段,所以是

{
  "status": false,
  "data": null,
  "message": "\r\n### Error updating database.  Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 關鍵字 'WHERE' 附近有語法錯誤。\r\n### The error may exist in com/supconit/honeycomb/exchangejob/dao/ExchangeDictionaryConfigDao.java (best guess)\r\n### The error may involve com.supconit.honeycomb.exchangejob.dao.ExchangeDictionaryConfigDao.updateById-Inline\r\n### The error occurred while setting parameters\r\n### SQL: UPDATE EX_EXCHANGE_DICTIONARY_CONFIG    WHERE id=?\r\n### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 關鍵字 'WHERE' 附近有語法錯誤。\n; bad SQL grammar []; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 關鍵字 'WHERE' 附近有語法錯誤。",
  "code": "9999"
}

 

 

 

 執行 未有set 任何字段的sql

UPDATE EX_EXCHANGE_DICTIONARY_CONFIG    WHERE id=?
看到這個,還是想到不能過於信任插件,想當然以為這種語法這種傳參是可以通過的,查閱文檔才發現可以進行配置,自己還是年輕

mybatis-plus:
  configuration:
    field-strategy: 1

IGNORED(0): "忽略判斷", 所有字段都更新和插入
NOT_NULL(1): "非 NULL 判斷", 只更新和插入非NULL值
NOT_EMPTY(2): "非空判斷", 只更新和插入非NULL值且非空字符串


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM