| 594 | return nil |
| 595 | } |
| 596 | func (spq *StoragePolicyQuery) loadEntities(ctx context.Context, query *EntityQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *Entity)) error { |
| 597 | fks := make([]driver.Value, 0, len(nodes)) |
| 598 | nodeids := make(map[int]*StoragePolicy) |
| 599 | for i := range nodes { |
| 600 | fks = append(fks, nodes[i].ID) |
| 601 | nodeids[nodes[i].ID] = nodes[i] |
| 602 | if init != nil { |
| 603 | init(nodes[i]) |
| 604 | } |
| 605 | } |
| 606 | if len(query.ctx.Fields) > 0 { |
| 607 | query.ctx.AppendFieldOnce(entity.FieldStoragePolicyEntities) |
| 608 | } |
| 609 | query.Where(predicate.Entity(func(s *sql.Selector) { |
| 610 | s.Where(sql.InValues(s.C(storagepolicy.EntitiesColumn), fks...)) |
| 611 | })) |
| 612 | neighbors, err := query.All(ctx) |
| 613 | if err != nil { |
| 614 | return err |
| 615 | } |
| 616 | for _, n := range neighbors { |
| 617 | fk := n.StoragePolicyEntities |
| 618 | node, ok := nodeids[fk] |
| 619 | if !ok { |
| 620 | return fmt.Errorf(`unexpected referenced foreign-key "storage_policy_entities" returned %v for node %v`, fk, n.ID) |
| 621 | } |
| 622 | assign(node, n) |
| 623 | } |
| 624 | return nil |
| 625 | } |
| 626 | func (spq *StoragePolicyQuery) loadNode(ctx context.Context, query *NodeQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *Node)) error { |
| 627 | ids := make([]int, 0, len(nodes)) |
| 628 | nodeids := make(map[int][]*StoragePolicy) |