记录一个gorm发生全局查询条件的问题

 

 

 

正常情况下在使用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的源码,找到为什么会这样的原因,但是因为时间有限,没有找到原因。

如果你知道原因,欢迎评论

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章