Чтобы получить данные из таблицы в TypeORM с использованием массива идентификаторов, вы можете использовать несколько методов. Вот несколько вариантов:
-
Использование метода
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); -
Использование метода
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); -
Использование метода
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'фактическим названием вашей организации.