jmoiron / modl

golang database modelling library
MIT License
479 stars 48 forks source link

Export DbMap within Transaction #35

Open tonyhb opened 9 years ago

tonyhb commented 9 years ago

I'd love to be able to mix basic CRUD queries with Modl with more advanced, raw sqlx queries.

The one thing holding this back is assimilating a *sqlx.Tx within Modl like this:

func ORMTx(tx *sql.Tx) *modl.Transaction {
    // where dbMap is a previously initialised *model.DbMap
    return &modl.Transaction{dbMap, tx}
}

Doing this would let you chain sqlx.Tx raw queries alongside Modl queries:

tx := sqlx.MustBegin()
SomethingWithSQL(tx)
SomethingWithORM(tx)
tx.Commit()

Or is mixing the two crazy?

tonyhb commented 9 years ago

Uh, maybe instead of exporting DbMap we could create a method within Modl to assimilate a tx?

func (m *DbMap) AssimilateTx(tx *sqlx.Tx) *Transaction {
    return &Transaction{m, tx}
}