![](https://img-blog.csdnimg.cn/20200812215444929.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
经验总结
经验总结,最佳实战。
若甘年后
疯狂的程序员
展开
-
springboot jpa 查询不到修改后数据问题
jpa在多线程中,T1线程插入一条数据,T2线程修改(update)这条数据,T1线程再去查询这条数据的时候,查询到的是T2修改之前的数据。注:T2线程若想要修改后能查询到修改后的数据(update操作要加上@Modifying(clearAutomatically = true),才能在修改后查询到修改后的数据,否则T2线程也不能查询到修改后数据)spring.jpa.open-in.view: falsespringboot 2.x以后这个参数默认是true ,遇到多线程dml d.原创 2021-04-04 23:33:46 · 1218 阅读 · 0 评论 -
SpringBoot事务提交之后的操作保证
业务场景:在一个事务操作中,当数据入库之后,继续做其他异步或同步操作,如消息通知、远程接口调用等。存在的问题:事务原子性不能保证:如果出现事务回滚,则数据入库失败,然而异步操作却不能回滚,继续执行,这就会出现与业务预期不一致的结果(如数据入库失败,但是消息通知则照常触发); 数据正确性无法保证:如果异步操作需要反查数据库上一步入库的结果,而上一步的事务由于数据库压力或IO等原因导致事务提交延迟,这时异步操作去数据库里查询数据就会失败;解决方案: 这就要求我们保证事务...原创 2020-12-24 19:24:08 · 4093 阅读 · 7 评论 -
记录一次数据同步导致的“删库”事故
时间2020年8月11下午4点多前因后果我司项目环境分为:开发环境(服务和数据库),线上环境(服务和数据库).....。 今天有个新需求,涉及到数据库表的变动,我在测试环境把表设计好,然后需要把改动的表结构同步到线上环境数据库。由于我没有线上数据库的读权限。就叫同事帮忙同步。同事每次干这种同步表结构的事情都是采用navicat自带的同步功能(如上图)。正常操作就是点击上图的“结构同步”进行开发和线上环境数据库的表结构进行差异比对。对不同的地方勾选进行选中同步。这个时候负责同步的同事失误操作点原创 2020-08-12 21:45:02 · 521 阅读 · 0 评论