本人菜鸟一枚,公司要求做一个产线生产工单工时维护的功能,但是这个功能查询的内容有两个字段,产量和当日产量是实时的,
这两个字段和前面的字段信息都是从很多表中(以下简称A表)汇总过来的,因为现在要求是保存每天的工单信息,因此还有一张维护表B,我目前主体实现逻辑是这样的,但是有bug
1、先根据条件判断维护表中B中有没有数据结果1
2、再根据条件从A表中查询数据结果2(结果2数据肯定会大于等于结果1的数据)
3、接着判断结果1和结果2的数据条数大小
x、 如果结果1条数等于0并且结果2条数等于0,就返回没有数据到页面
y、如果结果1条数等于0但是结果2不等于0,就把结果2的数据插入到表B,再从表B查询出结果返回到页面
z、 如果结果1数据条数等于结果2条数,更新表B结果1,再从数据库查询结果1返回到页面
w、如果结果1数据条数小于结果2条数,就清理结果2中和结果1相同的,再将剩余的插入到表B中,再从表B查询出结果1返回
我想请问一下大神,这样逻辑对吗,为啥会有重复数据发生呢,我在方法上加了同步关键字,还有就是像这样的事务级别是用的oracle默认的,关于这个事务级别应该如何设置呢,跪求大神指导,现在老是时不时有重复的