項目中使用的是xorm,雖然用了很順手了,可是還是會遇到一些坑,這里紀錄一些。
結構體自動忽略空字段
在xorm中,結構體會自動忽略空字段(或則說默認值,比如int 的0 ,string的""),這個時候,怎么解決呢?
把結構體中的字段,提到where語句的條件中,比如:
orm.Get(&User{Name:""}) //獲取Name為空的用戶
可以改為
orm.Where("name = ?","").Get(&User{})
update時指定主鍵
update如果不指定主鍵,會把全表更新,需要明確指定主鍵,如下
orm.Id(id).Update(&User{Name:"name"})