Documentation
¶
Index ¶
- func ApplyFieldMaskSelect(apply func(...string), mask *fieldmaskpb.FieldMask)
- func ApplyFieldMaskToBuilder[R any, B interface{ ... }](builder B, mask *fieldmaskpb.FieldMask) (R, bool)
- func NormalizeFieldMaskPaths(fm *fieldmaskpb.FieldMask)
- func NormalizePaths(paths []string) []string
- type Selector
- func (fs Selector) BuildSelect(s *sql.Selector, fields []string)
- func (fs Selector) BuildSelectWithTable(s *sql.Selector, table string, fields []string)
- func (fs Selector) BuildSelector(fields []string) (func(s *sql.Selector), error)
- func (fs Selector) BuildSelectorWithTable(table string, fields []string) (func(s *sql.Selector), error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyFieldMaskSelect ¶
func ApplyFieldMaskSelect(apply func(...string), mask *fieldmaskpb.FieldMask)
ApplyFieldMaskSelect 将 fieldmask 转换为 snake_case 并通过 apply 回调传入。 - apply: 接受归一化字段并调用,例如: func(ps ...string) { builder.Select(ps...) } - mask: 传入的 FieldMask,nil 或 空时不做任何操作
func ApplyFieldMaskToBuilder ¶
func ApplyFieldMaskToBuilder[R any, B interface{ Select(fields ...string) R }](builder B, mask *fieldmaskpb.FieldMask) (R, bool)
ApplyFieldMaskToBuilder 接受一个带 Select(...string) 方法的 builder 和 FieldMask, 将 paths 归一化为 snake_case(并将 id_/_id 归为 id),然后调用 builder.Select(paths...) 并返回 builder。 - R 是 Select 方法的返回类型(例如 *ent.UserSelect) - B 是拥有 Select(...string) R 方法的类型(例如 *ent.UserQuery) 返回 (R, bool): bool 表示是否实际调用了 Select(即 mask 非空)。
func NormalizeFieldMaskPaths ¶
func NormalizeFieldMaskPaths(fm *fieldmaskpb.FieldMask)
NormalizeFieldMaskPaths normalizes the paths in the given FieldMask to snake_case
func NormalizePaths ¶
NormalizePaths normalizes a slice of paths to snake_case
Types ¶
type Selector ¶
type Selector struct{}
Selector 字段选择器,用于构建SELECT语句中的字段列表。
func NewFieldSelector ¶
func NewFieldSelector() *Selector
func (Selector) BuildSelect ¶
BuildSelect 构建字段选择
func (Selector) BuildSelectWithTable ¶
BuildSelectWithTable 构建字段选择,给未带点的字段前置 table 名称
func (Selector) BuildSelector ¶
BuildSelector 构建字段选择器