1. 程式人生 > >記錄開發中踩過的坑(1)

記錄開發中踩過的坑(1)

做了三年多的程式設計開發,偶爾還是會踩坑,記錄一下

現在工作是維護一個五六年的老專案,例行維護,每個月都有一些新需求,對原有的一些功能做修改,或者是對某部分功能程式碼進行重構。同時一般每2-3個月上一個大的版本,主要是增加一些新功能,由於程式碼邏輯複雜,確認需求後一般開發三個星期左右,這幾週一般是比較忙的,開發完之後就開始與測試組那邊聯調,這期間還是很閒的。除此之外就是每個月的例行維護還是得做的,之前都是新專案開發,老專案維護也是第一次做,多記錄 一下

 

最近踩得一個坑

背景:需求開發完後,發現專案中有一個功能是用的delete,之後再insert: 存在問題,delete一般許可權要求較高,一般只會配insert和update許可權, 所以需要把這部分改成update

所以就開始開發了,看了一下之前大概的邏輯,很快就知道大概該怎麼改了,開始.........

改了一部分,那就先測測吧,然後就Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect).........

哪裡改錯了嗎?不是 , 報錯的大概意思是不在同一個事物,想想,我根據條件查出ID,之後把ID給之前insert的那個物件,根據ID進行update,大概知道哪裡錯了,於是就把insert的物件的屬性複製到我查出來的這個物件,然後用我查出來的物件進行update。

好的,問題解決。 繼續開發......

全部改好了,先整個流程測試一下,再分場景測試

嗯?有的表沒資料了,同步也沒有同步過去,好的,再看程式碼,看看之前是怎麼同步的,嗯?debug發現同步邏輯需要用到ID,我update是我查出來的物件,之前是用的delete再insert,insert之後這個物件就有ID了,發現問題了,update之後把ID還給之前的物件。 再測,好的,問題解決。

踩坑原因:忽略了insert後ID的影響