Documentation ¶
Index ¶
- Variables
- func Deleted(gorm *gorm.DB, deleted bool) *gorm.DB
- func Force(gorm *gorm.DB, force bool) *gorm.DB
- func JSONMarshal(v interface{}, escape bool) ([]byte, error)
- type Expression
- type ExpressionInter
- type LogicalOperator
- type MultiStringCondition
- type NoSQLCallback
- type Pagination
- type QueryList
- func (q QueryList) ConditionOrExpr() *Expression
- func (q QueryList) DeletedOrAll() bool
- func (q QueryList) LimitOrSize() int
- func (q QueryList) OffsetOrNumber() int
- func (q *QueryList) SetConditionOrExpr(expr *Expression) *QueryList
- func (q *QueryList) SetDeleted(deleted bool) *QueryList
- func (q *QueryList) SetLimitOrSize(size int) *QueryList
- func (q *QueryList) SetOffsetOrNumber(number int) *QueryList
- func (q QueryList) String() string
- type QueryLister
- type RelationalOperator
- type SingleStringCondition
- func (condition *SingleStringCondition) LogicalWrapFinish(finish bool) *SingleStringCondition
- func (condition *SingleStringCondition) LogicalWrapStart(start bool) *SingleStringCondition
- func (condition *SingleStringCondition) PreviousLogical(operator LogicalOperator) *SingleStringCondition
- func (condition *SingleStringCondition) String() string
- func (condition *SingleStringCondition) StringCondition(stringCondition StringCondition) *SingleStringCondition
- type Statement
- func (s *Statement) DB() *gorm.DB
- func (s *Statement) Deleted(deleted bool) *Statement
- func (s *Statement) Pagination(offset, limit int) *Statement
- func (s *Statement) Soft(soft bool) *Statement
- func (s *Statement) ToSQL(model interface{}, callback NoSQLCallback) string
- func (s *Statement) Where(condition *Expression) *Statement
- type StringCondition
- type UpdateFields
Constants ¶
This section is empty.
Variables ¶
var ( ErrExpressionCannotEmpty = fmt.Errorf("expression parameter cannot empty") ErrQueryListCannotEmpty = fmt.Errorf("querylist parameter cannot empty") ErrSameNameRecordAlreadyExists = fmt.Errorf("same name record already exists") )
Global error variables definition
var ( // DefaultNotExistsId default unit test not exists record id. DefaultNotExistsId = 1000000000 // DefaultCreateBatchSize default batch size. DefaultCreateBatchSize = 1000 )
Global default variables definition.
Functions ¶
func JSONMarshal ¶
JSONMarshal custom JSON marshal impl.
Types ¶
type Expression ¶
type Expression struct { Query interface{} `json:"query"` Args []interface{} `json:"args"` }
Expression where condition expression.
func NewExpression ¶
func NewExpression(query interface{}, args ...interface{}) *Expression
func (*Expression) String ¶
func (expression *Expression) String() string
type ExpressionInter ¶
type ExpressionInter interface {
Expression() *Expression
}
type LogicalOperator ¶
type LogicalOperator string
const ( LogicalOperatorAND LogicalOperator = "AND" LogicalOperatorOR LogicalOperator = "OR" LogicalOperatorBETWEENAND LogicalOperator = "{{.BETWEEN}}|{{AND}}" )
func (LogicalOperator) String ¶
func (s LogicalOperator) String() string
type MultiStringCondition ¶
type MultiStringCondition []*SingleStringCondition
func NewMultiStringCondition ¶
func NewMultiStringCondition() MultiStringCondition
func (MultiStringCondition) AddCondition ¶
func (multi MultiStringCondition) AddCondition(condition *SingleStringCondition) MultiStringCondition
func (MultiStringCondition) Expression ¶
func (multi MultiStringCondition) Expression() *Expression
type Pagination ¶
type Pagination struct { Data interface{} `json:"data"` Number int `json:"number"` // Pagination offset alias Size int `json:"size"` // Pagination limit alias Total int64 `json:"total"` }
Pagination http request pagination structure.
func NewPaginationWithQueryList ¶ added in v1.5.0
func NewPaginationWithQueryList(list QueryLister) *Pagination
func (*Pagination) SetData ¶ added in v1.5.0
func (p *Pagination) SetData(data interface{}) *Pagination
SetData set response data.
func (*Pagination) SetTotal ¶ added in v1.5.0
func (p *Pagination) SetTotal(total int64) *Pagination
SetTotal set total field value.
type QueryList ¶
type QueryList struct { Deleted bool `json:"all" form:"all,default=false"` // Whether to query soft deleted records. Offset int `json:"number" form:"number,default=1"` Limit int `json:"size" form:"size,default=15"` Condition *Expression `json:"-"` // conditional expression. }
QueryList query list parameter.
func NewQueryListWithMap ¶ added in v1.5.4
NewQueryListWithMap returns a new QueryList instance with map[string]interface{}
func (QueryList) ConditionOrExpr ¶ added in v1.5.4
func (q QueryList) ConditionOrExpr() *Expression
func (QueryList) DeletedOrAll ¶ added in v1.5.4
func (QueryList) LimitOrSize ¶ added in v1.5.4
func (QueryList) OffsetOrNumber ¶ added in v1.5.4
func (*QueryList) SetConditionOrExpr ¶ added in v1.5.4
func (q *QueryList) SetConditionOrExpr(expr *Expression) *QueryList
func (*QueryList) SetDeleted ¶ added in v1.5.4
func (*QueryList) SetLimitOrSize ¶ added in v1.5.4
func (*QueryList) SetOffsetOrNumber ¶ added in v1.5.4
type QueryLister ¶ added in v1.5.4
type QueryLister interface { DeletedOrAll() bool OffsetOrNumber() int LimitOrSize() int ConditionOrExpr() *Expression }
QueryLister common query list interface definition.
type RelationalOperator ¶
type RelationalOperator string
const ( OperatorEqual RelationalOperator = "=" OperatorNotEqual RelationalOperator = "<>" OperatorGreater RelationalOperator = ">" OperatorGreaterEqual RelationalOperator = ">=" OperatorLess RelationalOperator = "<" OperatorLessEqual RelationalOperator = "<=" OperatorIn RelationalOperator = "IN" OperatorLIKE RelationalOperator = "LIKE" )
func (RelationalOperator) String ¶
func (r RelationalOperator) String() string
type SingleStringCondition ¶
type SingleStringCondition struct {
// contains filtered or unexported fields
}
SingleStringCondition multi string condition structure.
func NewSingleStringCondition ¶
func NewSingleStringCondition() *SingleStringCondition
func (*SingleStringCondition) LogicalWrapFinish ¶
func (condition *SingleStringCondition) LogicalWrapFinish(finish bool) *SingleStringCondition
func (*SingleStringCondition) LogicalWrapStart ¶
func (condition *SingleStringCondition) LogicalWrapStart(start bool) *SingleStringCondition
func (*SingleStringCondition) PreviousLogical ¶
func (condition *SingleStringCondition) PreviousLogical(operator LogicalOperator) *SingleStringCondition
func (*SingleStringCondition) String ¶
func (condition *SingleStringCondition) String() string
func (*SingleStringCondition) StringCondition ¶
func (condition *SingleStringCondition) StringCondition(stringCondition StringCondition) *SingleStringCondition
type Statement ¶
type Statement struct {
// contains filtered or unexported fields
}
func NewStatement ¶
func (*Statement) Deleted ¶ added in v1.5.8
Deleted Query whether the deleted records are included. If deleted is true, they are included. Otherwise, they are not included.
func (*Statement) Pagination ¶
func (*Statement) Soft ¶
Soft whether delete is soft, if true use soft delete, otherwise hard delete.
func (*Statement) ToSQL ¶ added in v1.6.2
func (s *Statement) ToSQL(model interface{}, callback NoSQLCallback) string
func (*Statement) Where ¶
func (s *Statement) Where(condition *Expression) *Statement
type StringCondition ¶
type StringCondition struct { Field string `json:"field"` Operator RelationalOperator `json:"operator"` Value interface{} `json:"value"` }
func NewStringCondition ¶
func NewStringCondition(field string, operator RelationalOperator, value interface{}) *StringCondition
func (*StringCondition) Expression ¶
func (condition *StringCondition) Expression() *Expression
func (*StringCondition) String ¶
func (condition *StringCondition) String() string
type UpdateFields ¶ added in v1.5.5
type UpdateFields = map[string]interface{}
UpdateFields updates structure.