diff --git a/engine.go b/engine.go index afb38766..26f41dff 100644 --- a/engine.go +++ b/engine.go @@ -736,7 +736,14 @@ func (engine *Engine) mapType(v reflect.Value) *core.Table { if tb, ok := v.Interface().(TableName); ok { table.Name = tb.TableName() } else { - table.Name = engine.TableMapper.Obj2Table(t.Name()) + if v.CanAddr() { + if tb, ok = v.Addr().Interface().(TableName); ok { + table.Name = tb.TableName() + } + } + if table.Name == "" { + table.Name = engine.TableMapper.Obj2Table(t.Name()) + } } table.Type = t