diff --git a/preload.go b/preload.go index dddc6a35..9185aa7c 100644 --- a/preload.go +++ b/preload.go @@ -10,10 +10,9 @@ import ( // Preload is the representation of an association preload type Preload struct { - path []string - cols []string - cond builder.Cond - noPrune bool + path []string + cols []string + cond builder.Cond } // NewPreload creates a new preload with the specified path @@ -36,12 +35,6 @@ func (p *Preload) Where(cond builder.Cond) *Preload { return p } -// NoPrune sets a flag to avoid pruning empty associations -func (p *Preload) NoPrune() *Preload { - p.noPrune = true - return p -} - // PreloadTreeNode is a tree node for the association preloads type PreloadTreeNode struct { preload *Preload @@ -150,7 +143,7 @@ func (node *PreloadTreeNode) compute(session *Session, ownMap, pruneMap reflect. } var refPruneMap reflect.Value - if len(node.children) > 0 && !(node.preload != nil && (len(node.preload.cols) > 0 || node.preload.noPrune)) { + if len(node.children) > 0 && !(node.preload != nil && len(node.preload.cols) > 0) { refPruneMap = reflect.MakeMap(reflect.MapOf(refMap.Type().Key(), reflect.TypeOf(true))) refIter := refMap.MapRange() for refIter.Next() { diff --git a/preload_test.go b/preload_test.go index 9d87ad72..e7d05764 100644 --- a/preload_test.go +++ b/preload_test.go @@ -62,7 +62,7 @@ insert into employee_indication values (1,2), (1,3), (2,3), (2,4), (2,5), (3,5), var employee Employee _, err = engine.Preloads( engine.Preload("Indications.Buddy").Cols("name"), - engine.Preload("Indications").NoPrune(), + engine.Preload("Indications").Cols("id"), ).Cols("name").Where(builder.Eq{"id": 2}).Get(&employee) require.NoError(t, err)