diff --git a/lib/sqlbuilder/builder.go b/lib/sqlbuilder/builder.go index 9993bd90041da48e93e7b88251afb08594f94db1..bbaa08f847246acdf4389caf2b51bca0e2d7971e 100644 --- a/lib/sqlbuilder/builder.go +++ b/lib/sqlbuilder/builder.go @@ -15,6 +15,10 @@ import ( "upper.io/db.v2/lib/reflectx" ) +type hasIsZero interface { + IsZero() bool +} + type hasArguments interface { Arguments() []interface{} } @@ -215,7 +219,11 @@ func Map(item interface{}) ([]string, []interface{}, error) { } if _, ok := fi.Options["omitempty"]; ok { - if value == fi.Zero.Interface() { + if t, ok := fld.Interface().(hasIsZero); ok { + if t.IsZero() { + continue + } + } else if value == fi.Zero.Interface() { continue } }