repo

package
v1.2.2 Latest Latest
Warning

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

Go to latest
Published: May 22, 2024 License: LGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseRepo

type BaseRepo[T any] struct{ Orm *gorm.DB }

func NewBaseRepo

func NewBaseRepo[T any]() *BaseRepo[T]

func (*BaseRepo[T]) CountAll

func (r *BaseRepo[T]) CountAll() (int64, error)

CountAll 指定表无条件统计全部数量

func (*BaseRepo[T]) DeleteBy

func (r *BaseRepo[T]) DeleteBy(condition *T, hardDelete bool) error

DeleteBy 根据给定条件删除记录,可选是否硬删除(仅对于有软删除的表)

func (*BaseRepo[T]) DeleteById

func (r *BaseRepo[T]) DeleteById(id uint64) error

DeleteById 按照ID删除一条

func (*BaseRepo[T]) Exec

func (r *BaseRepo[T]) Exec(sql string, values ...interface{}) (*gorm.DB, error)

Exec 执行原生sql语句

func (*BaseRepo[T]) FindBy

func (r *BaseRepo[T]) FindBy(condition *T) (*T, error)

FindBy 根据条件查找一条记录

func (*BaseRepo[T]) FindByID

func (r *BaseRepo[T]) FindByID(id uint64) (*T, error)

FindByID 按照ID读取一条记录

func (*BaseRepo[T]) GetByPage

func (r *BaseRepo[T]) GetByPage(page int, pageSize int) ([]T, error)

GetByPage 根据分页获取记录

func (*BaseRepo[T]) Insert

func (r *BaseRepo[T]) Insert(model *T) error

Insert 插入一条记录

func (*BaseRepo[T]) InsertOrIgnore

func (r *BaseRepo[T]) InsertOrIgnore(model *T, condition *T) (int64, error)

InsertOrIgnore 无显式事务 先查找,存在则忽略,否则插入 (并发性也可以由数据库相同的unique key来保证)

func (*BaseRepo[T]) InsertOrUpdate

func (r *BaseRepo[T]) InsertOrUpdate(insertItem *T, condition *T, updateValues *T) error

InsertOrUpdate 事务版本 先查找,不存在则插入,存在则更新

func (*BaseRepo[T]) SelectBy

func (r *BaseRepo[T]) SelectBy(condition *T, results *[]*T, opts ...SelOpt) error

SelectBy 按照条件查找多条 可使用链式方法添加order和limit等参数

func (*BaseRepo[T]) UpdateBy

func (r *BaseRepo[T]) UpdateBy(condition *T, updateValues *T) (int64, error)

UpdateBy 根据条件更新记录

func (*BaseRepo[T]) UpdateById

func (r *BaseRepo[T]) UpdateById(id uint64, updateValues *T) error

UpdateById 按照ID更新一条

func (*BaseRepo[T]) Upsert

func (r *BaseRepo[T]) Upsert(model *T, condition *T) error

Upsert 非显式事务(onConflict和clauses),根据condition查找记录,如果存在则更新,如果不存在则创建

func (*BaseRepo[T]) UpsertByID

func (r *BaseRepo[T]) UpsertByID(model *T, updateFields []string) error

UpsertByID 非显式事务(onConflict和clauses),固定根据id查找记录,如果存在则更新,如果不存在则创建

type SelOpt

type SelOpt func(*gorm.DB) *gorm.DB

SelOpt SelectBy 条件配置

func WithLimit

func WithLimit(limit int) SelOpt

func WithOrderBy

func WithOrderBy(orderBy string) SelOpt

Jump to

Keyboard shortcuts

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