Получение данных из таблицы по массиву идентификаторов в TypeORM: методы и примеры

Чтобы получить данные из таблицы в TypeORM с использованием массива идентификаторов, вы можете использовать несколько методов. Вот несколько вариантов:

  1. Использование метода createQueryBuilder:

    import { getRepository } from 'typeorm';
    async function getDataByIds(entityName: string, ids: number[]): Promise<any[]> {
    const repository = getRepository(entityName);
    const query = repository.createQueryBuilder()
    .where('id IN (:...ids)', { ids })
    .getMany();
    return query;
    }
    // Usage:
    const entityName = 'YourEntity'; // Replace with your actual entity name
    const ids = [1, 2, 3]; // Array of IDs
    const result = await getDataByIds(entityName, ids);
    console.log(result);
  2. Использование метода findByIds:

    import { getRepository } from 'typeorm';
    async function getDataByIds(entityName: string, ids: number[]): Promise<any[]> {
    const repository = getRepository(entityName);
    const result = await repository.findByIds(ids);
    return result;
    }
    // Usage:
    const entityName = 'YourEntity'; // Replace with your actual entity name
    const ids = [1, 2, 3]; // Array of IDs
    const result = await getDataByIds(entityName, ids);
    console.log(result);
  3. Использование метода createQueryBuilderс подзапросом:

    import { getRepository, In } from 'typeorm';
    async function getDataByIds(entityName: string, ids: number[]): Promise<any[]> {
    const repository = getRepository(entityName);
    const query = repository.createQueryBuilder()
    .where(qb => {
      const subQuery = qb.subQuery()
        .select('id')
        .from(entityName, 'entity')
        .where('entity.id IN (:...ids)', { ids })
        .getQuery();
    
      return 'id IN ' + subQuery;
    })
    .getMany();
    return query;
    }
    // Usage:
    const entityName = 'YourEntity'; // Replace with your actual entity name
    const ids = [1, 2, 3]; // Array of IDs
    const result = await getDataByIds(entityName, ids);
    console.log(result);

Это всего лишь несколько примеров того, как можно получить данные из таблицы в TypeORM, используя массив идентификаторов. Не забудьте заменить 'YourEntity'фактическим названием вашей организации.