orm RawSeter readValues set nil when get NULL
Showing
1 changed file
with
13 additions
and
1 deletions
| ... | @@ -90,7 +90,7 @@ func (o *rawSet) readValues(container interface{}) (int64, error) { | ... | @@ -90,7 +90,7 @@ func (o *rawSet) readValues(container interface{}) (int64, error) { |
| 90 | case *ParamsList: | 90 | case *ParamsList: |
| 91 | typ = 3 | 91 | typ = 3 |
| 92 | default: | 92 | default: |
| 93 | panic(fmt.Sprintf("unsupport read values type `%T`", container)) | 93 | panic(fmt.Sprintf("<RawSeter> unsupport read values type `%T`", container)) |
| 94 | } | 94 | } |
| 95 | 95 | ||
| 96 | query := o.query | 96 | query := o.query |
| ... | @@ -133,20 +133,32 @@ func (o *rawSet) readValues(container interface{}) (int64, error) { | ... | @@ -133,20 +133,32 @@ func (o *rawSet) readValues(container interface{}) (int64, error) { |
| 133 | params := make(Params, len(cols)) | 133 | params := make(Params, len(cols)) |
| 134 | for i, ref := range refs { | 134 | for i, ref := range refs { |
| 135 | value := reflect.Indirect(reflect.ValueOf(ref)).Interface().(sql.NullString) | 135 | value := reflect.Indirect(reflect.ValueOf(ref)).Interface().(sql.NullString) |
| 136 | if value.Valid { | ||
| 136 | params[cols[i]] = value.String | 137 | params[cols[i]] = value.String |
| 138 | } else { | ||
| 139 | params[cols[i]] = nil | ||
| 140 | } | ||
| 137 | } | 141 | } |
| 138 | maps = append(maps, params) | 142 | maps = append(maps, params) |
| 139 | case 2: | 143 | case 2: |
| 140 | params := make(ParamsList, 0, len(cols)) | 144 | params := make(ParamsList, 0, len(cols)) |
| 141 | for _, ref := range refs { | 145 | for _, ref := range refs { |
| 142 | value := reflect.Indirect(reflect.ValueOf(ref)).Interface().(sql.NullString) | 146 | value := reflect.Indirect(reflect.ValueOf(ref)).Interface().(sql.NullString) |
| 147 | if value.Valid { | ||
| 143 | params = append(params, value.String) | 148 | params = append(params, value.String) |
| 149 | } else { | ||
| 150 | params = append(params, nil) | ||
| 151 | } | ||
| 144 | } | 152 | } |
| 145 | lists = append(lists, params) | 153 | lists = append(lists, params) |
| 146 | case 3: | 154 | case 3: |
| 147 | for _, ref := range refs { | 155 | for _, ref := range refs { |
| 148 | value := reflect.Indirect(reflect.ValueOf(ref)).Interface().(sql.NullString) | 156 | value := reflect.Indirect(reflect.ValueOf(ref)).Interface().(sql.NullString) |
| 157 | if value.Valid { | ||
| 149 | list = append(list, value.String) | 158 | list = append(list, value.String) |
| 159 | } else { | ||
| 160 | list = append(list, nil) | ||
| 161 | } | ||
| 150 | } | 162 | } |
| 151 | } | 163 | } |
| 152 | 164 | ... | ... |
-
Please register or sign in to post a comment