From 555eb9abb935abf821e130266de37b7df14cf37e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=95=86=E8=AE=AF=E5=9C=A8=E7=BA=BF?= Date: Thu, 30 Oct 2014 22:30:30 +0800 Subject: [PATCH] update --- engine.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/engine.go b/engine.go index dab4e0c5..cc498441 100644 --- a/engine.go +++ b/engine.go @@ -4,6 +4,7 @@ import ( "bufio" "bytes" "database/sql" + "encoding/gob" "errors" "fmt" "io" @@ -623,11 +624,22 @@ func (engine *Engine) autoMapType(v reflect.Value) *core.Table { table = engine.mapType(v) engine.mutex.Lock() engine.Tables[t] = table + if v.CanAddr() { + engine.GobRegister(v.Addr().Interface()) + } else { + engine.GobRegister(v.Interface()) + } engine.mutex.Unlock() } return table } +func (engine *Engine) GobRegister(v interface{}) *Engine { + //fmt.Printf("Type: %[1]T => Data: %[1]#v\n", v) + gob.Register(v) + return engine +} + func (engine *Engine) TableInfo(bean interface{}) *core.Table { v := rValue(bean) return engine.autoMapType(v)