File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -264,6 +264,7 @@ func (i *importer) modelImports() fileImports {
264264
265265 if len (i .Enums ) > 0 {
266266 std ["fmt" ] = struct {}{}
267+ std ["database/sql/driver" ] = struct {}{}
267268 }
268269
269270 return sortedImports (std , pkg )
Original file line number Diff line number Diff line change @@ -87,6 +87,30 @@ func (e *{{.Name}}) Scan(src interface{}) error {
8787 return nil
8888}
8989
90+ type Null{{.Name }} struct {
91+ {{.Name }} {{.Name }}
92+ Valid bool // Valid is true if String is not NULL
93+ }
94+
95+ // Scan implements the Scanner interface.
96+ func (ns *Null{{.Name }}) Scan(value interface{}) error {
97+ if value == nil {
98+ ns. {{.Name }}, ns.Valid = " " , false
99+ return nil
100+ }
101+ ns.Valid = true
102+ return ns. {{.Name }}.Scan (value)
103+ }
104+
105+ // Value implements the driver Valuer interface.
106+ func (ns Null{{.Name }}) Value() (driver.Value , error) {
107+ if !ns.Valid {
108+ return nil , nil
109+ }
110+ return ns. {{.Name }}, nil
111+ }
112+
113+
90114{{ if $ .EmitEnumValidMethod }}
91115func (e {{.Name }}) Valid() bool {
92116 switch e {
You can’t perform that action at this time.
0 commit comments