@@ -193,8 +193,8 @@ func (q *{{ $.model.Name }}Query) Preload{{ pascal $b.Name }}() *{{ $.model.Name
193193func (q *{{ $.model.Name }}Query) preload{{ pascal $b.Name }}(rows []*{{ $.model.Name }}) error {
194194 ids := []int64{}
195195 for _, r := range rows {
196- if !r.{{ $b.ModelName }}ID .Null {
197- ids = append(ids, r.{{ $b.ModelName }}ID .Val)
196+ if !r.{{ $b.ForeignKey | pascal }} .Null {
197+ ids = append(ids, r.{{ $b.ForeignKey | pascal }} .Val)
198198 }
199199 }
200200 rows1, err := q.queries.Query{{ $b.ModelName }}().Where(q.schema.{{ $b.ModelName }}ID.In(ids)).All()
@@ -207,8 +207,8 @@ func (q *{{ $.model.Name }}Query) preload{{ pascal $b.Name }}(rows []*{{ $.model
207207 m[r.ID] = r
208208 }
209209 for _, r := range rows {
210- if !r.{{ $b.ModelName }}ID .Null {
211- r.{{ $b.ModelName }} = m[r.{{ $b.ModelName }}ID .Val]
210+ if !r.{{ $b.ForeignKey | pascal }} .Null {
211+ r.{{ $b.Name | pascal }} = m[r.{{ $b.ForeignKey | pascal }} .Val]
212212 }
213213 }
214214
@@ -240,7 +240,11 @@ func (q *{{ $.model.Name }}Query) preload{{ pascal $h.Name }}(rows []*{{ $.model
240240 m1[r.{{ $.model.Name }}ID.Val] = append(m1[r.{{ $.model.Name }}ID.Val], r)
241241 }
242242 for _, r := range rows {
243- r.{{ $h.Through | pascal }} = m1[r.ID]
243+ if m1[r.ID] != nil {
244+ r.{{ $h.Through | pascal }} = m1[r.ID]
245+ } else {
246+ r.{{ $h.Through | pascal }} = make([]*{{ $m }}, 0)
247+ }
244248 }
245249
246250 ids1 := []int64{}
@@ -264,7 +268,11 @@ func (q *{{ $.model.Name }}Query) preload{{ pascal $h.Name }}(rows []*{{ $.model
264268 m3[r.{{ $.model.Name }}ID.Val] = append(m3[r.{{ $.model.Name }}ID.Val], r.{{ $h.ModelName }})
265269 }
266270 for _, r := range rows {
267- r.{{ $h.Name | pascal }} = m3[r.ID]
271+ if m3[r.ID] != nil {
272+ r.{{ $h.Name | pascal }} = m3[r.ID]
273+ } else {
274+ r.{{ $h.Name | pascal }} = make([]*{{ $h.ModelName }},0)
275+ }
268276 }
269277 {{- else }}
270278 rows1, err := q.queries.Query{{ $h.ModelName }}().Where(q.schema.{{ $h.ModelName }}{{ $.model.Name }}ID.In(ids)).All()
@@ -277,7 +285,11 @@ func (q *{{ $.model.Name }}Query) preload{{ pascal $h.Name }}(rows []*{{ $.model
277285 m[r.{{ $.model.Name }}ID.Val] = append(m[r.{{ $.model.Name }}ID.Val], r)
278286 }
279287 for _, r := range rows {
280- r.{{ $h.Name | pascal }} = m[r.ID]
288+ if m[r.ID] != nil {
289+ r.{{ $h.Name | pascal }} = m[r.ID]
290+ } else {
291+ r.{{ $h.Name | pascal }} = make([]*{{ $h.ModelName }}, 0)
292+ }
281293 }
282294 {{- end }}
283295
@@ -320,15 +332,15 @@ func (q *{{.model.Name}}Query) All() ([]*{{.model.Name}}, error) {
320332 }
321333 var rows []{{ $.model.Name }}
322334 {{- $var1 := $.model.Name | camel | plural }}
323- var {{ $var1 }} []*{{ $.model.Name }}
335+ {{ $var1 }} := make( []*{{ $.model.Name }}, 0)
324336 query, args := q.selectStatement.ToSQL()
325337 err := q.adapter.Query(query, args...).Scan(&rows)
326338 if err != nil {
327339 return nil, err
328340 }
329341
330342 if len(rows) == 0 {
331- return nil, err
343+ return {{ $var1 }}, nil
332344 }
333345
334346 for i := range rows {
0 commit comments