diff --git a/orm.go b/orm.go index 618bb1b..765a6db 100644 --- a/orm.go +++ b/orm.go @@ -265,7 +265,9 @@ func (dba *Orm) BuildSql(operType ...string) (a string, b []interface{}, err err return } // 解析字段 - if inArray(dba.GetIBinder().GetBindType(), []interface{}{OBJECT_STRUCT, OBJECT_STRUCT_SLICE}) { + // 如果有union操作, 则不需要 + if inArray(dba.GetIBinder().GetBindType(), []interface{}{OBJECT_STRUCT, OBJECT_STRUCT_SLICE}) && + dba.GetUnion()==nil{ dba.fields = getTagName(dba.GetIBinder().GetBindResult(), TAGNAME) } if len(operType) == 0 || (len(operType) > 0 && strings.ToLower(operType[0]) == "select") { diff --git a/orm_query_test.go b/orm_query_test.go index 43c4f02..e08e791 100644 --- a/orm_query_test.go +++ b/orm_query_test.go @@ -7,19 +7,11 @@ import ( ) func TestOrm_First(t *testing.T) { - db := DB() - var u = Users{} - var err error - //res, err := db.Table(&u).Get() - //if err != nil { - // t.Error(err.Error()) - //} - //t.Log(res) - err = db.Table(&u).Select() + res,err := DB().Table("users").First() if err != nil { t.Error(err.Error()) } - t.Log(u) + t.Log(res) } func TestOrm_Select(t *testing.T) { @@ -161,6 +153,16 @@ func TestOrm_Count(t *testing.T) { t.Log(res, db.LastSql()) } +func TestOrm_Count2(t *testing.T) { + var u Users + var count int64 + count, err := DB().Table(&u).Count() + if err != nil { + t.Error(err.Error()) + } + t.Log(count) +} + func TestOrm_Chunk(t *testing.T) { orm := DB()