// 주입
private readonly dataSource: DataSource,
// 사용
const queryRunner = this.dataSource.createQueryRunner(); // 생성
await queryRunner.connect(); // 연결
await queryRunner.startTransaction(); // 시작
try {
const 작업 = await queryRunner.manager.save(테이블명, 데이터) // 작업
await queryRunner.commitTransaction(); // 커밋
마무리 작업할거
} catch (error) {
await queryRunner.rollbackTransaction(); // 롤백
throw new InternalServerErrorException('에러 메시지'); // 에러 상태는 상황에 맞춰서
} finally {
queryRunner.release(); // 연결해제
}
// 예시코드
// create로 만든 후 넣기 => 테이블 지정안해도 됨, 넣는 코드 깔끔해짐
const farmInputData = this.farmRepository.create({
...createFarmInput,
...coordinates,
farm_img,
});
const farm = await queryRunner.manager.save(farmInputData);
// 한번에 넣기 => 테이블 지정 필요, 한번에 작업 끝
const farm = await queryRunner.manager.save(Farm, {
...createFarmInput,
...coordinates,
farm_img,
});
// 다른 테이블에, update
const updateResult = await queryRunner.manager.update(
User,
{ id: user_id },
{ user_type: 1 },
);
// 데이터 객체면 바로 넣기도 가능
const user = await queryRunner.manager.save(User, userData);
'코딩 > TypeORM' 카테고리의 다른 글
사용 방법 예시들 (0) | 2024.04.22 |
---|---|
entities (0) | 2024.04.22 |
초기 설정 + 공식문서 링크 (0) | 2024.04.17 |