Entgo 스키마에는 다음 필드를 정의할 수 있습니다.
entgo에서 지원하는 자료형 입니다.
go |
---|
숫자 자료형 ex) int , uint8 , float64 ,... |
bool |
string |
time.Time |
[]byte |
JSON |
Enum |
UUID |
Other |
Int
func (User) Fields() []ent.Field {
return []ent.Field {
field.Int("int"), // int
field.Int8("int8"), // int8
field.Int16("int16"), // int16
field.Int32("int32"), // int32
field.Int64("int64"), // int64
field.Ints("ints"), // []int
}
Uint
func (User) Fields() []ent.Field {
return []ent.Field {
field.Uint("uint"), // uint
field.Uint8("uint8"), // uint8
field.Uint16("uint16"), // uint16
field.Uint32("uint32"), // uint32
field.Uint64("uint64"), // uint64
}
Float
func (User) Fields() []ent.Field {
return []ent.Field {
field.Float("float64"), // float
field.Float32("float32"), // float32
}
Bool
func (User) Fields() []ent.Field {
return []ent.Field {
field.Bool("bool"), // bool
}
}
String
func (User) Fields() []ent.Field {
return []ent.Field {
field.String("string"), // string
field.Strings("strings"), // []string
// 길이제한 X
field.Text("text"), // string
}
Time
func (User) Fields() []ent.Field {
return []ent.Field {
field.Time("time"), // time.Time
}
Byte
func (User) Fields() []ent.Field {
return []ent.Field {
field.Byte("byte"), // byte
field.Bytes("bytes"), // []byte
}
}
Json
// JSON 데이터 구조체 정의
type UserInfo struct {
Name string
Age int
ID string `json:"web_id"`
}
//
func (User) Fields() []ent.Field {
return []ent.Field {
field.JSON("json", &UserInfo{}), // UserInfo struct interface
}
}
Enum
func (User) Fields() []ent.Field {
return []ent.Field {
field.Enum("enum").
Values("low", "mid", "high").
Default("low"), // string
}
}
UUID
import (
"entgo.io/ent"
"entgo.io/ent/schema/field"
"github.com/google/uuid"
)
// ..... //
func (User) Fields() []ent.Field {
return []ent.Field {
field.UUID("uuid", uuid.New()), // uuid.UUID
}
}