1. Repository 메소드
- Repository는 DB와 상호 작용하는 데 사용되는 주요 도구 중 하나이다.
1. find(conditions?:FindConditions<Entity>): 지정된 조건에 맞는 모든 엔터티를 검색한다. 특정 조건에 해당하는 모든 사용자를 검색할 수 있다.
const users = await userRepository.find({ age: 30 });
2. findOne(id: any, options?: FindOneOptions<Entity>): 주어진 조건에 해당하는 단일 엔터티를 검색한다.
const user = await userRepository.findOne(1);
3. save(entity: Entity, options?: SaveOptions): 주어진 엔터티를 저장한다. 엔터티가 이미 데이터베이스에 있는 경우 업데이트를 수행하고, 그렇지 않은 경우 새로운 엔터티를 추가한다.
const newUser = new User();
newUser.name = "John";
await userRepository.save(newUser);
4. remove(entity: Entity | Entity[], options?: RemoveOptions): 주어진 엔터티를 삭제한다. 단일 엔터티 또는 엔터티 배열을 받을 수 있다.
const user = await userRepository.findOne(1);
await userRepository.remove(user);
5. update(id: any, entity: Entity): 주어진 조건에 해당하는 엔터티를 업데이트한다.
await userRepository.update(1, { name: "Updated Name" });
6. count(conditions?: FindConditions<Entity>): 지정된 조건에 맞는 엔터티의 총 수를 반환한다.
const count = await userRepository.count({ age: 30 });
2. QueryBuilder 메소드
- QueryBuilder는 TypeORM에서 데이터베이스 쿼리를 동적으로 생성하는 데 사용되는 객체
- select(fields: string[]): 쿼리에서 반환할 필드를 선택합니다. 여러 필드를 선택할 수 있다.
- from(entity: Entity|string, alias?: string): 쿼리의 기본 엔터티를 설정한다. 기본 엔터티는 데이터를 검색할 기본 테이블을 나타낸다.
- where(condition: string | Brackets | ObjectLiteral, parameters?: ObjectLiteral): WHERE 절을 추가한다. 여러 가지 형태의 조건을 지정할 수 있다.
- orderBy(sort: ObjectLiteral): 결과를 정렬하는 데 사용된다.
- leftJoinAndSelect(property: string, alias: string, condition?: string, parameters?: ObjectLiteral): 왼쪽 조인과 SELECT를 수행한다. 연결된 엔터티의 필드를 함께 검색할 수 있다.
- limit(limit: number): 결과의 제한된 수를 설정한다.
- offset(offset: number): 결과의 오프셋을 설정한다.
- getMany(): 쿼리를 실행하고 여러 개의 결과를 가져온다.
- getOne(): 쿼리를 실행하고 하나의 결과를 가져온다.
- getCount(): 쿼리를 실행하고 결과의 총 개수를 가져온다.
const users = await getConnection()
.createQueryBuilder()
.select(["id", "name"])
.leftJoinAndSelect("user.posts", "post")
.from(User, "user")
.where("user.age > :age", { age: 18 })
.orderBy("user.age", "ASC")
.limit(10)
.offset(10)
.getMany();
'JavaScript Dev. > TypeORM' 카테고리의 다른 글
TypeORM - 주로 사용하는 데코레이터 정리 (0) | 2024.03.04 |
---|---|
TypeORM - 관계 설정(1:1, 1:N, N:M) (0) | 2024.03.04 |
TypeORM - 설치부터 기본 개념까지 (0) | 2024.03.04 |
TypeORM (0) | 2024.03.04 |