【go】gorm中去掉默認表名後的s複數形式

【go】gorm中去掉默認表名後的s複數形式

背景
使用gorm時,查詢數據時mysql報錯,顯示錶名不存在,仔細查看,報錯的表名中增加了s,比如實際數據庫表名是:ali_user,報錯信息中顯示錶 ali_users 不存在

原因
gorm默認使用結構體的複數形式作爲表名
比如:

# 表結構體定義如下:
type AliUser struct{
	ID int64 `json:id`,
}

# 實際讀取數據時,定義該類型的變量接收數據,報錯,顯示 ali_users表名不存在

解決
在model中增加顯式定義表名,不使用gorm的隱式表名定義規則

# TableName 解決gorm表名映射
func (AliUser) TableName() string {
	return "ali_user"     # gorm中默認定義的表名是 ali_users,但其實數據庫並沒有這個表
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章