正常情况下在使用gorm做修改操作时,会使用omit过滤一些字段,比如上图中修改的时候就不应该修改创建时间和创建人字段的值。
关键点在于上图如果omit中没有增加id字段,会造成gorm的全局查询条件问题,
简单来讲在下次查询的时候如果查询id=1的数据时,gorm会自动把上图中的查询条件拼接上去
会把原本的sql
select * from order where id= 1
改成
select * from order where (id=1) and id=10
结果则是查询不到数据,有尝试查看gorm的源码,找到为什么会这样的原因,但是因为时间有限,没有找到原因。
如果你知道原因,欢迎评论
标签:gorm,全局,查询,where,id,select From: https://www.cnblogs.com/WORDPAD/p/16893432.html