项目中使用的是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"})