xorm
xorm copied to clipboard
提议添加一个TAG功能扩展,可以更新为0或为nil的字段到数据库
很多时候很多字段都有可能被更新为0,或者有时候某些字段在一开始并不知道将来会不会设置为0,如果这类字段很多,那么更新语句就会很繁琐。 比如下面,像balance和pay的字段如果很多的话,那写起来就会很长的语句,跟手写SQL差不多工作量了 user.Balance = 0 user.Pay = 0 engine.Id(id).Cols("balance").Update(&user) 而且如果程序员一旦忘了给某个字段使用Cols去设置,会是一个比较大的坑。
能不能加一个TAG的关键字,加了这类关键字的字段是可以被允许更新0到数据库的,比如
type User struct {
Balance int xorm:"allow-zero"
Pay int xorm:"allow-zero"
Age uint
}
Balance和Pay为0时可以被更新到数据库,但是Age为0就不会被更新过去
考虑下。
+1
+1
Maybe the keyword always-update
is better.
+1 墙裂需要这个功能,不然动态添加Cols太痛苦了, 而AllCols 和 MustCols 又太极端了,全部要求field存在,不然会更新为默认零值
强烈支持下哈,不然真的痛苦,不清楚使用cols的人用说不定就是个坑哈,例如商品库存量不能减为0,这是要出大事故的,请问加了吗,真的后悔入坑了 @lunny
+1