Documentation ¶
Index ¶
- Constants
- Variables
- func Add(to Entity, items ...Entity) error
- func BelongsTo[OWNER Entity](property Entity) (OWNER, error)
- func BelongsToMany[OWNER Entity](property Entity) ([]OWNER, error)
- func Delete(obj Entity) error
- func Exec[E Entity](stmt *QueryBuilder[E]) (lastInsertedId int64, rowsAffected int64, err error)
- func ExecRaw[E Entity](q string, args ...interface{}) (int64, int64, error)
- func Find[T Entity](id interface{}) (T, error)
- func HasMany[OUT Entity](owner Entity) ([]OUT, error)
- func HasOne[PROPERTY Entity](owner Entity) (PROPERTY, error)
- func Initialize(confs ...ConnectionConfig) error
- func Insert(objs ...Entity) error
- func QueryRaw[OUTPUT Entity](q string, args ...interface{}) ([]OUTPUT, error)
- func Save(obj Entity) error
- func Schematic()
- func Update(obj Entity) error
- type BelongsToConfig
- type BelongsToManyConfig
- type Cond
- type Connection
- type ConnectionConfig
- type Dialect
- type Entity
- type EntityConfigurator
- type GroupBy
- type HasManyConfig
- type HasOneConfig
- type Having
- type Join
- type JoinOn
- type Limit
- type Offset
- type QueryBuilder
- func (q *QueryBuilder[E]) All() ([]E, error)
- func (q *QueryBuilder[E]) AndWhere(parts ...interface{}) *QueryBuilder[E]
- func (q *QueryBuilder[E]) Count() (int64, error)
- func (q *QueryBuilder[E]) Delete() (sql.Result, error)
- func (q *QueryBuilder[E]) Execute() (sql.Result, error)
- func (q *QueryBuilder[E]) First() (E, error)
- func (q *QueryBuilder[E]) FromQuery(subQuery *QueryBuilder[E]) *QueryBuilder[E]
- func (q *QueryBuilder[E]) FullOuterJoin(table string, onLhs string, onRhs string) *QueryBuilder[E]
- func (q *QueryBuilder[E]) GroupBy(columns ...string) *QueryBuilder[E]
- func (q *QueryBuilder[E]) InnerJoin(table string, onLhs string, onRhs string) *QueryBuilder[E]
- func (q *QueryBuilder[E]) Latest() (E, error)
- func (q *QueryBuilder[E]) LeftJoin(table string, onLhs string, onRhs string) *QueryBuilder[E]
- func (q *QueryBuilder[E]) Limit(n int) *QueryBuilder[E]
- func (q *QueryBuilder[E]) Offset(n int) *QueryBuilder[E]
- func (q *QueryBuilder[E]) One() (E, error)
- func (q *QueryBuilder[E]) OrWhere(parts ...interface{}) *QueryBuilder[E]
- func (q *QueryBuilder[E]) OrderBy(column string, how string) *QueryBuilder[E]
- func (q *QueryBuilder[E]) RightJoin(table string, onLhs string, onRhs string) *QueryBuilder[E]
- func (q *QueryBuilder[E]) Select(columns ...string) *QueryBuilder[E]
- func (q *QueryBuilder[E]) Set(name string, value interface{}) *QueryBuilder[E]
- func (q *QueryBuilder[E]) SetDelete() *QueryBuilder[E]
- func (q *QueryBuilder[E]) SetDialect(dialect *Dialect) *QueryBuilder[E]
- func (q *QueryBuilder[E]) SetSelect() *QueryBuilder[E]
- func (q *QueryBuilder[E]) SetUpdate() *QueryBuilder[E]
- func (q *QueryBuilder[E]) Sets(tuples ...[2]interface{}) *QueryBuilder[E]
- func (q *QueryBuilder[E]) Table(t string) *QueryBuilder[E]
- func (q *QueryBuilder[E]) ToSql() (string, []interface{}, error)
- func (q *QueryBuilder[E]) Update() (sql.Result, error)
- func (q *QueryBuilder[E]) Where(parts ...interface{}) *QueryBuilder[E]
- func (q *QueryBuilder[E]) WhereIn(column string, values ...interface{}) *QueryBuilder[E]
- func (q *QueryBuilder[E]) WherePK(value interface{}) *QueryBuilder[E]
- type RelationConfigurator
- func (r *RelationConfigurator) BelongsTo(owner Entity, config BelongsToConfig) *RelationConfigurator
- func (r *RelationConfigurator) BelongsToMany(owner Entity, config BelongsToManyConfig) *RelationConfigurator
- func (r *RelationConfigurator) HasMany(property Entity, config HasManyConfig) *RelationConfigurator
- func (r *RelationConfigurator) HasOne(property Entity, config HasOneConfig) *RelationConfigurator
Constants ¶
View Source
const ( DialectMySQL = iota + 1 DialectPostgres DialectSQLite )
View Source
const ( OrderByASC = "ASC" OrderByDesc = "DESC" )
View Source
const ( JoinTypeInner = "INNER" JoinTypeLeft = "LEFT" JoinTypeRight = "RIGHT" JoinTypeFull = "FULL" JoinTypeSelf = "SELF" )
View Source
const ( Eq = "=" GT = ">" LT = "<" GE = ">=" LE = "<=" NE = "!=" Between = "BETWEEN" Like = "LIKE" In = "IN" )
Variables ¶
View Source
var Dialects = &struct { MySQL *Dialect PostgreSQL *Dialect SQLite3 *Dialect }{ MySQL: &Dialect{ DriverName: "mysql", PlaceholderChar: "?", IncludeIndexInPlaceholder: false, AddTableNameInSelectColumns: true, PlaceHolderGenerator: mySQLPlaceHolder, }, PostgreSQL: &Dialect{ DriverName: "postgres", PlaceholderChar: "$", IncludeIndexInPlaceholder: true, AddTableNameInSelectColumns: true, PlaceHolderGenerator: postgresPlaceholder, }, SQLite3: &Dialect{ DriverName: "sqlite3", PlaceholderChar: "?", IncludeIndexInPlaceholder: false, AddTableNameInSelectColumns: false, PlaceHolderGenerator: mySQLPlaceHolder, }, }
Functions ¶
func Add ¶ added in v1.2.0
Add adds `items` to `to` using relations defined between items and to in ConfigureRelations method of `to`.
func BelongsToMany ¶ added in v1.2.0
BelongsToMany
func Exec ¶
func Exec[E Entity](stmt *QueryBuilder[E]) (lastInsertedId int64, rowsAffected int64, err error)
func Find ¶ added in v1.2.0
Find finds the Entity you want based on Entity generic type and primary key you passed.
func Initialize ¶ added in v1.2.0
func Initialize(confs ...ConnectionConfig) error
Types ¶
type BelongsToConfig ¶ added in v1.2.0
type BelongsToManyConfig ¶ added in v1.2.0
type Cond ¶
type Connection ¶
type Connection struct { Name string Dialect *Dialect Connection *sql.DB Schemas map[string]*schema }
func GetConnection ¶ added in v1.2.0
func GetConnection(name string) *Connection
func (*Connection) Schematic ¶
func (c *Connection) Schematic()
type ConnectionConfig ¶ added in v1.2.0
type Entity ¶
type Entity interface { ConfigureEntity(e *EntityConfigurator) ConfigureRelations(r *RelationConfigurator) }
type EntityConfigurator ¶ added in v1.2.0
type EntityConfigurator struct {
// contains filtered or unexported fields
}
func (*EntityConfigurator) Connection ¶ added in v1.2.0
func (e *EntityConfigurator) Connection(name string) *EntityConfigurator
func (*EntityConfigurator) Table ¶ added in v1.2.0
func (e *EntityConfigurator) Table(name string) *EntityConfigurator
type HasManyConfig ¶ added in v1.2.0
type HasOneConfig ¶ added in v1.2.0
type QueryBuilder ¶ added in v1.2.0
type QueryBuilder[E Entity] struct { // contains filtered or unexported fields }
func NewQueryBuilder ¶ added in v1.2.0
func NewQueryBuilder[E Entity]() *QueryBuilder[E]
func Query ¶ added in v1.2.0
func Query[E Entity]() *QueryBuilder[E]
func (*QueryBuilder[E]) All ¶ added in v1.2.0
func (q *QueryBuilder[E]) All() ([]E, error)
func (*QueryBuilder[E]) AndWhere ¶ added in v1.2.0
func (q *QueryBuilder[E]) AndWhere(parts ...interface{}) *QueryBuilder[E]
func (*QueryBuilder[E]) Count ¶ added in v1.2.0
func (q *QueryBuilder[E]) Count() (int64, error)
func (*QueryBuilder[E]) Delete ¶ added in v1.2.0
func (q *QueryBuilder[E]) Delete() (sql.Result, error)
func (*QueryBuilder[E]) Execute ¶ added in v1.2.0
func (q *QueryBuilder[E]) Execute() (sql.Result, error)
func (*QueryBuilder[E]) First ¶ added in v1.2.0
func (q *QueryBuilder[E]) First() (E, error)
func (*QueryBuilder[E]) FromQuery ¶ added in v1.2.0
func (q *QueryBuilder[E]) FromQuery(subQuery *QueryBuilder[E]) *QueryBuilder[E]
func (*QueryBuilder[E]) FullOuterJoin ¶ added in v1.2.0
func (q *QueryBuilder[E]) FullOuterJoin(table string, onLhs string, onRhs string) *QueryBuilder[E]
func (*QueryBuilder[E]) GroupBy ¶ added in v1.2.0
func (q *QueryBuilder[E]) GroupBy(columns ...string) *QueryBuilder[E]
func (*QueryBuilder[E]) InnerJoin ¶ added in v1.2.0
func (q *QueryBuilder[E]) InnerJoin(table string, onLhs string, onRhs string) *QueryBuilder[E]
func (*QueryBuilder[E]) Latest ¶ added in v1.2.0
func (q *QueryBuilder[E]) Latest() (E, error)
func (*QueryBuilder[E]) LeftJoin ¶ added in v1.2.0
func (q *QueryBuilder[E]) LeftJoin(table string, onLhs string, onRhs string) *QueryBuilder[E]
func (*QueryBuilder[E]) Limit ¶ added in v1.2.0
func (q *QueryBuilder[E]) Limit(n int) *QueryBuilder[E]
func (*QueryBuilder[E]) Offset ¶ added in v1.2.0
func (q *QueryBuilder[E]) Offset(n int) *QueryBuilder[E]
func (*QueryBuilder[E]) One ¶ added in v1.2.0
func (q *QueryBuilder[E]) One() (E, error)
func (*QueryBuilder[E]) OrWhere ¶ added in v1.2.0
func (q *QueryBuilder[E]) OrWhere(parts ...interface{}) *QueryBuilder[E]
func (*QueryBuilder[E]) OrderBy ¶ added in v1.2.0
func (q *QueryBuilder[E]) OrderBy(column string, how string) *QueryBuilder[E]
func (*QueryBuilder[E]) RightJoin ¶ added in v1.2.0
func (q *QueryBuilder[E]) RightJoin(table string, onLhs string, onRhs string) *QueryBuilder[E]
func (*QueryBuilder[E]) Select ¶ added in v1.2.0
func (q *QueryBuilder[E]) Select(columns ...string) *QueryBuilder[E]
func (*QueryBuilder[E]) Set ¶ added in v1.2.0
func (q *QueryBuilder[E]) Set(name string, value interface{}) *QueryBuilder[E]
func (*QueryBuilder[E]) SetDelete ¶ added in v1.2.0
func (q *QueryBuilder[E]) SetDelete() *QueryBuilder[E]
func (*QueryBuilder[E]) SetDialect ¶ added in v1.2.0
func (q *QueryBuilder[E]) SetDialect(dialect *Dialect) *QueryBuilder[E]
func (*QueryBuilder[E]) SetSelect ¶ added in v1.2.0
func (q *QueryBuilder[E]) SetSelect() *QueryBuilder[E]
func (*QueryBuilder[E]) SetUpdate ¶ added in v1.2.0
func (q *QueryBuilder[E]) SetUpdate() *QueryBuilder[E]
func (*QueryBuilder[E]) Sets ¶ added in v1.2.0
func (q *QueryBuilder[E]) Sets(tuples ...[2]interface{}) *QueryBuilder[E]
func (*QueryBuilder[E]) Table ¶ added in v1.2.0
func (q *QueryBuilder[E]) Table(t string) *QueryBuilder[E]
func (*QueryBuilder[E]) ToSql ¶ added in v1.2.0
func (q *QueryBuilder[E]) ToSql() (string, []interface{}, error)
func (*QueryBuilder[E]) Update ¶ added in v1.2.0
func (q *QueryBuilder[E]) Update() (sql.Result, error)
func (*QueryBuilder[E]) Where ¶ added in v1.2.0
func (q *QueryBuilder[E]) Where(parts ...interface{}) *QueryBuilder[E]
func (*QueryBuilder[E]) WhereIn ¶ added in v1.2.0
func (q *QueryBuilder[E]) WhereIn(column string, values ...interface{}) *QueryBuilder[E]
func (*QueryBuilder[E]) WherePK ¶ added in v1.2.0
func (q *QueryBuilder[E]) WherePK(value interface{}) *QueryBuilder[E]
type RelationConfigurator ¶
type RelationConfigurator struct {
// contains filtered or unexported fields
}
func (*RelationConfigurator) BelongsTo ¶
func (r *RelationConfigurator) BelongsTo(owner Entity, config BelongsToConfig) *RelationConfigurator
func (*RelationConfigurator) BelongsToMany ¶
func (r *RelationConfigurator) BelongsToMany(owner Entity, config BelongsToManyConfig) *RelationConfigurator
func (*RelationConfigurator) HasMany ¶
func (r *RelationConfigurator) HasMany(property Entity, config HasManyConfig) *RelationConfigurator
func (*RelationConfigurator) HasOne ¶
func (r *RelationConfigurator) HasOne(property Entity, config HasOneConfig) *RelationConfigurator
Click to show internal directories.
Click to hide internal directories.