selects

package
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 27, 2023 License: MIT Imports: 10 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func InitializeRelationships

func InitializeRelationships(v any) error

func Load

func Load(tx *sqlx.Tx, v any, relation string) error

func NewSelects

func NewSelects() *selects

func NewWheres

func NewWheres() *wheres

Types

type AfterLoader

type AfterLoader interface {
	AfterLoad(ctx context.Context, tx *sqlx.Tx) error
}

type AfterSaver

type AfterSaver interface {
	AfterSave(ctx context.Context, tx *sqlx.Tx) error
}

type BeforeSaver

type BeforeSaver interface {
	BeforeSave(ctx context.Context, tx *sqlx.Tx) error
}

type BelongsTo

type BelongsTo[T models.Model] struct {
	// contains filtered or unexported fields
}

func (*BelongsTo[T]) Initialize

func (r *BelongsTo[T]) Initialize(parent any, field reflect.StructField) error

func (*BelongsTo[T]) Load

func (r *BelongsTo[T]) Load(tx *sqlx.Tx, relations []Relationship) error

func (*BelongsTo) Loaded

func (v *BelongsTo) Loaded() bool

func (*BelongsTo) MarshalJSON

func (v *BelongsTo) MarshalJSON() ([]byte, error)

func (*BelongsTo[T]) Value

func (r *BelongsTo[T]) Value(tx *sqlx.Tx) (T, error)

type Builder

type Builder[T models.Model] struct {
	// contains filtered or unexported fields
}

func From

func From[T models.Model]() *Builder[T]

func New

func New[T models.Model]() *Builder[T]

func NewEmpty

func NewEmpty[T models.Model]() *Builder[T]

func (*Builder[T]) AddGroupBy

func (b *Builder[T]) AddGroupBy(columns ...string) *Builder[T]

func (*Builder[T]) AddSelect

func (b *Builder[T]) AddSelect(columns ...string) *Builder[T]

func (*Builder[T]) AddSelectFunction added in v0.4.1

func (b *Builder[T]) AddSelectFunction(function, column string) *Builder[T]

func (*Builder[T]) AddSelectSubquery

func (b *Builder[T]) AddSelectSubquery(sb QueryBuilder) *Builder[T]

func (*Builder[T]) And

func (b *Builder[T]) And(cb func(b *WhereList)) *Builder[T]

func (*Builder[T]) Clone added in v0.3.1

func (b *Builder[T]) Clone() *Builder[T]

func (*Builder[T]) Distinct

func (b *Builder[T]) Distinct() *Builder[T]

func (*Builder[T]) Dump

func (b *Builder[T]) Dump() *Builder[T]

func (*Builder[T]) Find

func (b *Builder[T]) Find(tx *sqlx.Tx, primaryKeyValues ...any) (T, error)

func (*Builder[T]) FindContext

func (b *Builder[T]) FindContext(ctx context.Context, tx *sqlx.Tx, primaryKeyValues ...any) (T, error)

func (*Builder[T]) First

func (b *Builder[T]) First(tx *sqlx.Tx) (T, error)

func (*Builder[T]) FirstContext

func (b *Builder[T]) FirstContext(ctx context.Context, tx *sqlx.Tx) (T, error)

func (*Builder[T]) From

func (b *Builder[T]) From(table string) *Builder[T]

func (*Builder[T]) Get

func (b *Builder[T]) Get(tx *sqlx.Tx) ([]T, error)

func (*Builder[T]) GetContext

func (b *Builder[T]) GetContext(ctx context.Context, tx *sqlx.Tx) ([]T, error)

func (*Builder[T]) GroupBy

func (b *Builder[T]) GroupBy(columns ...string) *Builder[T]

func (*Builder[T]) Having

func (b *Builder[T]) Having(column, operator string, value any) *Builder[T]

func (*Builder[T]) HavingAnd

func (b *Builder[T]) HavingAnd(cb func(b *WhereList)) *Builder[T]

func (*Builder[T]) HavingColumn added in v0.4.0

func (b *Builder[T]) HavingColumn(column, operator string, valueColumn string) *Builder[T]

func (*Builder[T]) HavingExists added in v0.4.0

func (b *Builder[T]) HavingExists(query QueryBuilder) *Builder[T]

func (*Builder[T]) HavingIn added in v0.4.0

func (b *Builder[T]) HavingIn(column string, values []any) *Builder[T]

func (*Builder[T]) HavingOr

func (b *Builder[T]) HavingOr(cb func(b *WhereList)) *Builder[T]

func (*Builder[T]) Join

func (b *Builder[T]) Join() *Builder[T]

func (*Builder[T]) Limit

func (b *Builder[T]) Limit(limit int) *Builder[T]

func (*Builder[T]) Load added in v0.3.2

func (b *Builder[T]) Load(tx *sqlx.Tx, v any) error

func (*Builder[T]) LoadContext added in v0.3.2

func (b *Builder[T]) LoadContext(ctx context.Context, tx *sqlx.Tx, v any) error

func (*Builder[T]) LoadOne added in v0.3.2

func (b *Builder[T]) LoadOne(tx *sqlx.Tx, v any) error

func (*Builder[T]) LoadOneContext added in v0.3.2

func (b *Builder[T]) LoadOneContext(ctx context.Context, tx *sqlx.Tx, v any) error

func (*Builder[T]) Offset

func (b *Builder[T]) Offset(offset int) *Builder[T]

func (*Builder[T]) Or

func (b *Builder[T]) Or(cb func(b *WhereList)) *Builder[T]

func (*Builder[T]) OrHaving

func (b *Builder[T]) OrHaving(column, operator string, value any) *Builder[T]

func (*Builder[T]) OrHavingColumn added in v0.4.0

func (b *Builder[T]) OrHavingColumn(column, operator string, valueColumn string) *Builder[T]

func (*Builder[T]) OrHavingExists added in v0.4.0

func (b *Builder[T]) OrHavingExists(query QueryBuilder) *Builder[T]

func (*Builder[T]) OrHavingIn added in v0.4.0

func (b *Builder[T]) OrHavingIn(column string, values []any) *Builder[T]

func (*Builder[T]) OrWhere

func (b *Builder[T]) OrWhere(column, operator string, value any) *Builder[T]

func (*Builder[T]) OrWhereColumn

func (b *Builder[T]) OrWhereColumn(column, operator string, valueColumn string) *Builder[T]

func (*Builder[T]) OrWhereExists added in v0.4.0

func (b *Builder[T]) OrWhereExists(query QueryBuilder) *Builder[T]

func (*Builder[T]) OrWhereIn

func (b *Builder[T]) OrWhereIn(column string, values []any) *Builder[T]

func (*Builder[T]) OrderBy

func (b *Builder[T]) OrderBy(column string) *Builder[T]

func (*Builder[T]) OrderByDesc added in v0.4.2

func (b *Builder[T]) OrderByDesc(column string) *Builder[T]

func (*Builder[T]) Select

func (b *Builder[T]) Select(columns ...string) *Builder[T]

func (*Builder[T]) SelectFunction added in v0.4.0

func (b *Builder[T]) SelectFunction(function, column string) *Builder[T]

func (*Builder[T]) SelectSubquery

func (b *Builder[T]) SelectSubquery(sb QueryBuilder) *Builder[T]

func (*Builder[T]) ToSQL

func (b *Builder[T]) ToSQL(d dialects.Dialect) (string, []any, error)

func (*Builder[T]) Where

func (b *Builder[T]) Where(column, operator string, value any) *Builder[T]

func (*Builder[T]) WhereColumn

func (b *Builder[T]) WhereColumn(column, operator string, valueColumn string) *Builder[T]

func (*Builder[T]) WhereExists added in v0.4.0

func (b *Builder[T]) WhereExists(query QueryBuilder) *Builder[T]

func (*Builder[T]) WhereIn

func (b *Builder[T]) WhereIn(column string, values []any) *Builder[T]

type HasMany

type HasMany[T models.Model] struct {
	// contains filtered or unexported fields
}

func (*HasMany[T]) Initialize

func (r *HasMany[T]) Initialize(parent any, field reflect.StructField) error

func (*HasMany[T]) Load

func (r *HasMany[T]) Load(tx *sqlx.Tx, relations []Relationship) error

func (*HasMany[T]) Loaded

func (r *HasMany[T]) Loaded() bool

func (*HasMany) MarshalJSON

func (v *HasMany) MarshalJSON() ([]byte, error)

func (*HasMany[T]) Value

func (r *HasMany[T]) Value(tx *sqlx.Tx) ([]T, error)

type HasOne

type HasOne[T models.Model] struct {
	// contains filtered or unexported fields
}

func (*HasOne[T]) Initialize

func (r *HasOne[T]) Initialize(parent any, field reflect.StructField) error

func (*HasOne[T]) Load

func (r *HasOne[T]) Load(tx *sqlx.Tx, relations []Relationship) error

func (*HasOne[T]) Loaded

func (r *HasOne[T]) Loaded() bool
func (r *HasOne[T]) Query() *selects.Builder {
	var related T
	local, ok := builder.GetValue(r.parent, r.localKey)
	if !ok {
		panic(fmt.Errorf("no local key %s", r.localKey))
	}
	return selects.New().
		Select("*").
		From(builder.GetTable(related)).
		Where(r.foreignKey, "=", local).
		Limit(1)
}

func (*HasOne) MarshalJSON

func (v *HasOne) MarshalJSON() ([]byte, error)

func (*HasOne[T]) Value

func (r *HasOne[T]) Value(tx *sqlx.Tx) (T, error)

type Join

type Join struct{}

type QueryBuilder added in v0.4.1

type QueryBuilder interface {
	builder.ToSQLer
	// contains filtered or unexported methods
}

type Relationship

type Relationship interface {
	// Query() *selects.Builder
	Initialize(self any, field reflect.StructField) error
	Load(tx *sqlx.Tx, relations []Relationship) error
	Loaded() bool
}

type WhereList

type WhereList struct {
	// contains filtered or unexported fields
}

func NewWhereList

func NewWhereList() *WhereList

func (*WhereList) And

func (w *WhereList) And(cb func(w *WhereList)) *WhereList

func (*WhereList) Clone added in v0.3.1

func (w *WhereList) Clone() *WhereList

func (*WhereList) Or

func (w *WhereList) Or(cb func(w *WhereList)) *WhereList

func (*WhereList) OrWhere

func (w *WhereList) OrWhere(column, operator string, value any) *WhereList

func (*WhereList) OrWhereColumn

func (w *WhereList) OrWhereColumn(column, operator string, valueColumn string) *WhereList

func (*WhereList) OrWhereExists added in v0.4.0

func (w *WhereList) OrWhereExists(query QueryBuilder) *WhereList

func (*WhereList) OrWhereIn

func (w *WhereList) OrWhereIn(column string, values []any) *WhereList

func (*WhereList) ToSQL

func (w *WhereList) ToSQL(d dialects.Dialect) (string, []any, error)

func (*WhereList) Where

func (w *WhereList) Where(column, operator string, value any) *WhereList

func (*WhereList) WhereColumn

func (w *WhereList) WhereColumn(column, operator string, valueColumn string) *WhereList

func (*WhereList) WhereExists added in v0.4.0

func (w *WhereList) WhereExists(query QueryBuilder) *WhereList

func (*WhereList) WhereIn

func (w *WhereList) WhereIn(column string, values []any) *WhereList

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL