Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IDatabase ¶
type IDatabase interface { dbx.IDatabase // Scopes pass current database connection to arguments `func(*DB) *DB`, which could be used to add conditions dynamically // func AmountGreaterThan1000(db *gorm.DB) *gorm.DB { // return db.Where("amount > ?", 1000) // } // // func OrderStatus(status []string) func (db *gorm.DB) *gorm.DB { // return func (db *gorm.DB) *gorm.DB { // return db.Scopes(AmountGreaterThan1000).Where("status in (?)", status) // } // } // // db.Scopes(AmountGreaterThan1000, OrderStatus([]string{"paid", "shipped"})).Find(&orders) // Refer https://jinzhu.github.io/gorm/crud.html#scopes Scopes(funcs ...func(IDatabase) IDatabase) IDatabase // Unscoped return all record including deleted record, refer Soft Delete https://jinzhu.github.io/gorm/crud.html#soft-delete Unscoped() IDatabase // Model specify the model you would like to run db operations // // update all users's name to `hello` // db.Model(&User{}).Update("name", "hello") // // if user's primary key is non-blank, will use it as condition, then will only update the user's name to `hello` // db.Model(&user).Update("name", "hello") Model(value interface{}) ITable // Table specifies the table you would like to run db operations. Alias 'T' Table(name string) ITable // T specifies the table you would like to run db operations. Alias 'Table' T(name string) ITable // Debug starts debug mode Debug() // AddForeignKey Add foreign key to the given scope, e.g: // db.Model(&User{}).AddForeignKey("city_id", "cities(id)", "RESTRICT", "RESTRICT") AddForeignKey(field string, dest string, onDelete string, onUpdate string) error // RemoveForeignKey Remove foreign key from the given scope, e.g: // db.Model(&User{}).RemoveForeignKey("city_id", "cities(id)") RemoveForeignKey(field string, dest string) error Db() *gorm.DB }
type IQuery ¶
type IQuery interface { dbx.IQuery // Group specify the group method on the find Group(query string) IQuery // Having specify HAVING conditions for GROUP BY Having(query interface{}, values ...interface{}) IQuery // Joins specify Joins conditions // db.Joins("JOIN emails ON emails.user_id = users.id AND emails.email = ?", "jinzhu@example.org").Find(&user) Joins(query string, args ...interface{}) IQuery // Attrs initialize struct with argument if record not found with `FirstOrInit` https://jinzhu.github.io/gorm/crud.html#firstorinit or `FirstOrCreate` https://jinzhu.github.io/gorm/crud.html#firstorcreate Attrs(attrs ...interface{}) IQuery Assign(attrs ...interface{}) IQuery // Take return a record that match given conditions, the order will depend on the database implementation Take(out interface{}, where ...interface{}) IQuery // Scan scan value to a struct Scan(dest interface{}) IQuery // FirstOrInit find first matched record or initialize a new one with given conditions (only works with struct, map conditions) // https://jinzhu.github.io/gorm/crud.html#firstorinit FirstOrInit(out interface{}, where ...interface{}) IQuery // FirstOrCreate find first matched record or create a new one with given conditions (only works with struct, map conditions) // https://jinzhu.github.io/gorm/crud.html#firstorcreate FirstOrCreate(out interface{}, where ...interface{}) IQuery // UpdateColumn update attributes without callbacks, refer: https://jinzhu.github.io/gorm/crud.html#update UpdateColumn(attrs ...interface{}) IQuery // UpdateColumns update attributes without callbacks, refer: https://jinzhu.github.io/gorm/crud.html#update UpdateColumns(values interface{}) IQuery // Row return `*sql.Row` with given conditions Row() *sql.Row // Rows return `*sql.Rows` with given conditions Rows() (*sql.Rows, error) Error() error }
type ITable ¶
type ITable interface { dbx.IRepository // Omit specify fields that you want to ignore when saving to database for creating, updating Omit(columns ...string) ITable // ScanRows scan `*sql.Rows` to give struct ScanRows(rows *sql.Rows, result interface{}) error // Pluck used to query single column from a model as a map // var ages []int64 // db.Find(&users).Pluck("age", &ages) Pluck(column string, value interface{}) ITable // Related get related associations Related(foreignKeys ...string) ITable // Save update value in database, if the value doesn't have primary key, will insert it Save(value interface{}) error // ModifyColumn modify column to type ModifyColumn(column string, typ string) error // DropColumn drop a column DropColumn(column string) error // Association start `Association Mode` to handler relations things easir in that mode, refer: https://jinzhu.github.io/gorm/associations.html#association-mode Association(column string) *gorm.Association // Preload preload associations with given conditions // db.Preload("Orders", "state NOT IN (?)", "cancelled").Find(&users) Preload(column string, conditions ...interface{}) ITable }
Click to show internal directories.
Click to hide internal directories.