ent 生成的代码中client 提供了比较全的事务处理 启动单个事务进行处理 // GenTx generates group of entities in a transaction. func GenTx(ctx context.Context, client *ent.Client) error { tx, err := client.Tx(ctx) if err != nil { return fmt.Errorf("starting a transaction: %v",
ent 生成的代码包含了比较完整的查询谓词 字段谓词 Bool: =, != Numeric: =, !=, >, <, >=, <=, IN, NOT IN Time: =, !=, >, <, >=, <= IN, NOT IN String: =, !=, >, <, >=, <= IN, NOT IN Contains, HasPrefix, HasSuffix ContainsFold, EqualFold (SQL spe
ent 提供了聚合处理 一个group by + 聚合的处理(age以及name字段) package main import ( "context" "<project>/ent" "<project>/ent/user" ) func Do(ctx context.Context, client *ent.Client) { var v []struct { Name string `json:"
ent 提供了cli 工具,可以方便我们进行schema 以及代码生成,同时目前提供的cli已经够用了 安装 cli go get github.com/facebookincubator/ent/cmd/entc 创建schema entc init User Pet 生成代码 基于schema 的定义(字段,索引,边,配置) entc generate ./ent/schema 说明: 生成的代码包含了crud.migrate.entity.client 版本兼容处理 使用独立的cli以及生
我们可以在ent 的schema 中定义index 可以方便的控制数据约束,使用索引可以加速我们的访问以及数据的唯一性处理 配置字段索引 多字段索引 package schema import ( "github.com/facebookincubator/ent" "github.com/facebookincubator/ent/schema/index" ) // User holds the schema definition for the Use