findManyOptions는 TypeORM에서 여러 엔티티를 조회할 때 사용하는 옵션 객체입니다. 이 객체를 사용하여 데이터베이스 쿼리에 다양한 조건과 설정을 적용할 수 있습니다. 주요 옵션들을 상세히 설명드리겠습니다.
where:
설명: 조회 조건을 지정합니다. 객체 형태로 컬럼과 값을 매핑하거나, 배열 형태로 여러 조건을 지정할 수 있습니다.
예시:위의 예시는
name
이 "John"인 사용자들을 조회합니다.const users = await userRepository.find({ where: { name: "John" } });
relations:
설명: 관계된 엔티티를 함께 로드할 때 사용합니다. 배열로 관계 엔티티의 이름을 지정합니다.
예시:사용자와 함께
profile
,posts
관계를 로드합니다.const users = await userRepository.find({ relations: ["profile", "posts"] });
order:
설명: 결과를 정렬할 때 사용합니다. 객체로 컬럼과 정렬 방식을 지정합니다.
예시:
name
은 오름차순,age
는 내림차순으로 정렬합니다.const users = await userRepository.find({ order: { name: "ASC", age: "DESC" } });
skip:
설명: 조회 결과에서 처음 N개의 항목을 건너뜁니다. 페이징에 사용됩니다.
예시:처음 10개의 항목을 건너뛰고 조회합니다.
const users = await userRepository.find({ skip: 10 });
take:
설명: 조회할 최대 항목 수를 지정합니다.
예시:최대 5개의 사용자만 조회합니다.
const users = await userRepository.find({ take: 5 });
select:
설명: 조회할 컬럼을 선택적으로 지정합니다. 배열로 컬럼 이름을 나열합니다.
예시:
id
,name
,email
컬럼만 조회합니다.const users = await userRepository.find({ select: ["id", "name", "email"] });
cache:
설명: 쿼리 결과를 캐싱할지 여부를 지정합니다.
true
또는 밀리초(ms) 단위의 숫자를 입력합니다.예시:결과를 60초 동안 캐싱합니다.
const users = await userRepository.find({ cache: 60000// 60초 동안 캐싱 });
join:
설명: 복잡한 조인을 수행할 때 사용합니다. 별칭(alias)과 조인 조건을 세부적으로 지정합니다.
예시:
user
와profile
을 조인하여 조회합니다.const users = await userRepository.find({ join: { alias: "user", leftJoinAndSelect: { profile: "user.profile" } } });
withDeleted:
설명: soft-delete된 엔티티를 포함하여 조회할지 결정합니다.
예시:삭제된 사용자까지 포함하여 조회합니다.
const users = await userRepository.find({ withDeleted: true });
loadRelationIds:
설명: 관계된 엔티티의 전체 객체 대신 ID만 로드합니다.
예시:관계 엔티티의 ID만 가져옵니다.
const users = await userRepository.find({ loadRelationIds: true });
lock:
설명: 쿼리에 잠금(lock)을 적용합니다.
optimistic
또는pessimistic
잠금을 사용할 수 있습니다.예시:낙관적 잠금을 적용하여 버전 1인지 확인합니다.
const users = await userRepository.find({ lock: { mode: "optimistic", version: 1 } });
comment:
설명: 쿼리에 주석을 추가합니다. 디버깅이나 로깅에 유용합니다.
예시:쿼리에 "Fetching active users"라는 주석이 추가됩니다.
const users = await userRepository.find({ comment: "Fetching active users" });
'TypeOrm' 카테고리의 다른 글
TypeOrm 주요메서드 (0) | 2024.11.12 |
---|---|
TypeOrm 관계 설정 옵션 (0) | 2024.11.11 |
TypeOrm FindManyOptions (0) | 2024.11.11 |
TypeOrm Relationship (0) | 2024.11.09 |
TypeOrm Inheritance (1) | 2024.11.08 |