Идентификатор ссылки Ent.go, вложенный в запрос

У меня есть список идентификаторов партнеров и карта идентификаторов партнеров для списка идентификаторов клиентов.

Я хотел бы запросить партнеров с клиентами, извлекая только партнеров в списке и только их связанных клиентов, которые существуют на карте.

      partnerIds := []int{ 1, 2 }
partnerMap := make(map[int][]int)
partnerMap[1] = []int{ 100, 106 }
partnerMap[2] = []int{ 101, 206, 207 }

results := db.Partner.Query().
  Where(partner.IDIn(partnerIds...)).
  WithCustomers(func(q *ent.CustomerQuery) {
    q.Where(customer.IDIn(partnerMap[xxx]...)) // Something here instead of xxx
  }).
  AllX(context.Background())

В настоящее время я просто передаю список всех идентификаторов клиентов, а затем повторно фильтрую постфактум. Но надеялся, что есть более приятный способ.

Можно ли каким-то образом сослаться на распакованный итератор partnerIds в подзапросе клиента? Или просто лучший способ в целом, который мне не хватает.

0 ответов

Другие вопросы по тегам