func (t *Post) SelectTag(db sqruct.DB) ([]Tag, []PostTag, error) { b, relTbl, _ := zzPost{}.SelectBuilderForTag() sql, args := b.Where( q.Eq(relTbl.PostID(), t.ID), ).ToSQL() r, err := db.Query(sql, args...) if err != nil { return nil, nil, err } defer r.Close() ot, rt := []Tag{}, []PostTag{} for r.Next() { var oe Tag var re PostTag if err = r.Scan(append(zzPostTag{}.Pointers(&re), zzTag{}.Pointers(&oe)...)...); err != nil { return nil, nil, err } ot, rt = append(ot, oe), append(rt, re) } if err = r.Err(); err != nil { return nil, nil, err } return ot, rt, nil }
func (t *Account) Delete(db sqruct.DB) error { b, tbl := zzAccount{}.DeleteBuilder() sql, args := b.Where( q.Eq(tbl.ID(), t.ID), ).ToSQL() _, err := db.Exec(sql, args...) return err }
func (t *Post) Update(db sqruct.DB) error { b, tbl := zzPost{}.UpdateBuilder(t) sql, args := b.Where( q.Eq(tbl.ID(), t.ID), ).ToSQL() _, err := db.Exec(sql, args...) return err }
func (t *PostTag) Insert(db sqruct.DB) error { b, _ := zzPostTag{}.InsertBuilder(t) sql, args := b.ToSQL() _, err := db.Exec(sql, args...) return err }
func (t *PostTag) Delete(db sqruct.DB) error { b, tbl := zzPostTag{}.DeleteBuilder() sql, args := b.Where( q.Eq(tbl.PostID(), t.PostID), q.Eq(tbl.TagID(), t.TagID), ).ToSQL() _, err := db.Exec(sql, args...) return err }
func (t *Post) GetAccount(db sqruct.DB) (*Account, error) { b, tbl := zzAccount{}.SelectBuilder() sql, args := b.Where( q.Eq(tbl.ID(), t.AccountID), ).ToSQL() var ot Account if err := db.QueryRow(sql, args...).Scan(zzAccount{}.Pointers(&ot)...); err != nil { return nil, err } return &ot, nil }
func (t *PostTag) GetTag(db sqruct.DB) (*Tag, error) { b, tbl := zzTag{}.SelectBuilder() sql, args := b.Where( q.Eq(tbl.ID(), t.TagID), ).ToSQL() var ot Tag if err := db.QueryRow(sql, args...).Scan(zzTag{}.Pointers(&ot)...); err != nil { return nil, err } return &ot, nil }
func GetAccount(db sqruct.DB, id int64) (*Account, error) { b, tbl := zzAccount{}.SelectBuilder() sql, args := b.Where( q.Eq(tbl.ID(), id), ).ToSQL() var t Account err := db.QueryRow(sql, args...).Scan(zzAccount{}.Pointers(&t)...) if err != nil { return nil, err } return &t, nil }
func GetPostTag(db sqruct.DB, postID int64, tagID int64) (*PostTag, error) { b, tbl := zzPostTag{}.SelectBuilder() sql, args := b.Where( q.Eq(tbl.PostID(), postID), q.Eq(tbl.TagID(), tagID), ).ToSQL() var t PostTag err := db.QueryRow(sql, args...).Scan(zzPostTag{}.Pointers(&t)...) if err != nil { return nil, err } return &t, nil }
func (t *Account) Insert(db sqruct.DB) error { b, tbl := zzAccount{}.InsertBuilder(t) if !sqruct.IsZero(t.ID) { sql, args := b.Set(tbl.ID(), t.ID).ToSQL() _, err := db.Exec(sql, args...) return err } sql, args := b.ToSQL() r, err := db.Exec(sql, args...) if err != nil { return err } var i int64 if i, err = r.LastInsertId(); err != nil { return err } t.ID = i return nil }
func (t *Account) SelectPost(db sqruct.DB) ([]Post, error) { b, tbl := zzPost{}.SelectBuilder() sql, args := b.Where( q.Eq(tbl.AccountID(), t.ID), ).ToSQL() r, err := db.Query(sql, args...) if err != nil { return nil, err } defer r.Close() ot := []Post{} for r.Next() { var e Post if err = r.Scan(zzPost{}.Pointers(&e)...); err != nil { return nil, err } ot = append(ot, e) } if err = r.Err(); err != nil { return nil, err } return ot, nil }