您好,登錄后才能下訂單哦!
本篇文章為大家展示了使用goxorm無法對進行值更新時如何解決,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
今天遇到個問題,goxorm無法更新某一個字段為0.
xxTable := &models.XXTable{Visible: visible}
affected, err := eng.Where("id=?", id).Update(xxTable)
這種情況下,因為go的結構初始值都是各自的0值,所以xorm無法識別要更新結構體中的哪個col,如下方法寫可以正常解決。
xxTable := &models.XXTable{Visible: visible}
affected, err := eng.Where("id=?", id).Cols("visible").Update(xxTable)
補充:golang gin xorm注意事項
1. 無論是golang還是xorm中,在填寫j'son字段時,注意空格,比如 `json:"abcd "` `json:"abcd"`是不一樣的,不仔細對比會出錯
2.當結合gin框中的
c.JSON(http.StatusOK,gin.H{})操作
并且使用xorm中的join,find操作時(https://www.kancloud.cn/xormplus/xorm/167102)要注意如下現象,
假如定義兩個結構體對應兩個表
然后使用聯合查詢,先把兩個結構體結合成一個結構體,假如如下,在UserGroup中使用User和Group匿名結構體,
那么當我們使用gin的c.JSON(http.StatusOK,gin.H{"data":UserGroup})返回數據時會導致Group和User中同名字段顯示不了,這應該是gin和xorm的不是很兼容造成的(沒有深究),要解決這個問題,最好讓UserGroup中的User和Group不要以匿名結構體的形式存在,可以改成
type UserGroup struct { MyUser User `xorm:"extends" json:"你要json中返回的名字"` MyGroup Group `xorm:"extends" json:"你要json中返回的名字"` }
上述內容就是使用goxorm無法對進行值更新時如何解決,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。