目录

gorm字段类型设置成map

概述

我想把某个字段设置成 map ,然后塞进去 MySQL,应该是挺常见的需求,于是查了 GORM 的官网,发现有很多自定义类型,于是尝试了一下,还是很方便的,项目里需要 import 一下就可以用。

操作

一开始我的结构体是这样的。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
type AddRuleForm struct {
	Name        string
	Cluster     string
	Alert       string
	Rule        string
	Expr        string
	For         string
	Labels      map[string]string
	Annotations map[string]string
	Desc        string
}

想把一个字段设置成 map[string]string 类型,发现在做 db.Create() 的时候报错了。

unsupported data type: &map[]

我想把某个字段设置成 map ,然后塞进去 MySQL,应该是挺常见的需求,于是查了 GORM 的官网,发现有很多自定义类型。

https://github.com/go-gorm/datatypes

第一个例子就是了,于是把结构体修改成下面的样式,就成功了。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
type AddRuleForm struct {
	Name        string
	Cluster     string
	Alert       string
	Rule        string
	Expr        string
	For         string
	Labels      datatypes.JSON
	Annotations datatypes.JSON
	Desc        string
}
/gorm%E5%AD%97%E6%AE%B5%E7%B1%BB%E5%9E%8B%E8%AE%BE%E7%BD%AE%E6%88%90map/img.png

参考资料

  1. datatypes
警告
本文最后更新于 2021年6月30日,文中内容可能已过时,请谨慎参考。