XORM使用的坑
2021-01-22 本文已影响0人
sickle4j
xorm使用in :
err := conn.Where(builder.In("id", ids)).And("deleted = 0").Find(&y)
使用SQL后使用Limit可能不生效,最好使用where
err := conn.SQL("select * from yunyun_works where deleted = 0").Limit(limit, start).Find(&yun)
结构体自动忽略空字段
在xorm中,结构体会自动忽略默认值,比如int 的0 ,string的"",默认是这个字段不执行,这个时候,怎么解决呢?
把结构体中的字段,提到where语句的条件中,比如:
orm.Get(&User{Name:""}) //获取Name为空的用户
可以改为
orm.Where("name = ?","").Get(&User{})
更新是如果结构体中有默认值,也不会更新,可以手写sql执行。
如下图:user中name=""就不会更新name字段
image.png