field.Float("amount"). GoType(Amount(0)), field.String("name"). Optional(). // A ValueScanner type. GoType(&sql.NullString{}), field.Enum("role"). // A convertible type to string. GoType(role.Role("")), field.Float("decimal"). // A ValueScanner type mixed with SchemaType. GoType(decimal.Decimal{}). SchemaType(map[string]string{ dialect.MySQL: "decimal(6,2)", // Override MySQL. dialect.Postgres: "numeric", // Override Postgres. }),
时间: 2024-04-01 14:31:47 浏览: 109
这是Ent ORM框架中定义数据库表字段时的另一种写法,其中定义了四个不同的字段类型,它们分别是:
- "amount"字段类型为浮点数,GoType为Amount(0);
- "name"字段类型为字符串,是可选的,GoType为&sql.NullString{},表示该字段可以为空;
- "role"字段类型为枚举类型,GoType为role.Role(""),表示该字段只能取枚举值中的一个;
- "decimal"字段类型为浮点数,GoType为decimal.Decimal{},同时在MySQL和Postgres中都被重写为DECIMAL(6,2)和NUMERIC类型。
这些字段类型的定义都使用了Ent ORM框架中提供的field包中的不同方法进行定义。
阅读全文