gorm tips

约定的列名

type User struct {
  ID        uint      // 列名是 `id`
  Name      string    // 列名是 `name`
  Birthday  time.Time // 列名是 `birthday`
  CreatedAt time.Time // 列名是 `created_at`
}

约定的是驼峰命名会转化为下划线命名。

type Animal struct {
  AnimalID int64     `gorm:"column:beast_id"`         // 将列名设为 `beast_id`
  Birthday time.Time `gorm:"column:day_of_the_beast"` // 将列名设为 `day_of_the_beast`
  Age      int64     `gorm:"column:age_of_the_beast"` // 将列名设为 `age_of_the_beast`
}

可以使用标签修改对用的名字。不然可能导致查出来的数据转换不到对应结构体中。

指定查询字段

不指定的化,是用的 select *。还可以对字段使用函数,但是要加上 as 不然会导致结构体中没有对象字段的值。

db.Table("users").Select("COALESCE(age,?)", 42).Rows()
// SELECT COALESCE(age,'42') FROM users;
db.Select("title", "id", "DATE_FORMAT(resolvedDate,'%Y-%m-%d') as resolvedDate")
posted @ 2022-08-14 23:54  让速不让路  阅读(31)  评论(0编辑  收藏  举报