记录开发中踩过的坑(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的影响

猜你喜欢

转载自blog.csdn.net/LMAKE_nbsp/article/details/84403279