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
上一篇下一篇

猜你喜欢

热点阅读