主鍵字段報錯doesn't have a default value (mybatis)
最近導師交給我一個項目,今天調試新功能的時候發現在執行數據庫插入操作的時候,主鍵報錯
補充說明一下,workorder_number做主鍵,char類型。
在控制台查看代碼執行到插入語句的時候其對應的sql語句
發現沒有插入workorder_number這個字段,其他的字段全都插入了。到這里可以初步判斷應該是在插入的時候主鍵這個字段沒有被選中插入。確定了發現,接下來一步步排查,在檢查數據庫中表的映射沒有出錯、表的實體類沒有問題、字段和變量名沒有寫錯之后,最后檢查mybatis的配置的時候,我發現了問題所在。
原來是主鍵已經設置好了數據庫ID自增,那么在向表中插入新記錄的時候就不需要我們自己填寫主鍵的值,那么也就很理所應當的我們的主鍵的字段就不會出現在上文中的sql語句里面。所有問題的解決方案就是:在表中新增個“id”字段,做主鍵,int類型,自增。那么問題就解決了
原來的workorder_number字段也出現在了sql語句里面,插入成功。
在此記錄下我犯的這個錯誤,在接手老項目的時候,務必搞清楚其相關的配置方式,避免產生不必要的錯誤。