질문있습니다
안녕하세요 제로초님.
트랜잭션에서 nest-typeorm폴더를 보니 트랜잭션이 적용이 안되어 있어서 back폴더의 express로 nest와 비교하며 공부하고 있습니다
1. 제가 이해한게 맞는지 헷갈립니당.
각각 네개의 Workspace.create, workspace.addMembers, Channel.create, channel.addMembers
에 두번째 인수로 transaction:t를 넣어주고 있는데 이는 이 네개중 하나라도 에러가 나면 모두 rollback되어서 4개 전부다 초기화 됩니다. 4개다 성공하면 commit되어 데이터베이스에 성공적으로 접근됩니다.
제가 이해한것이 맞나요?..
2.
그런데 만약 Workspace.create, workspace.addMembers,에만 두번째 인수로 transaction:t를 넣어주고
Channel.create, channel.addMembers에는 transaction:t를 빼주면 Channel.create, channel.addMembers에는 transaction에 적용을 받지는 않지만 정상적으로 디비에 저장되어야 하지 않나요?. 실제로 실험해보니 저장이 안되네요. 왜 그런지 궁금합니다
3.
여기서 t.rollback이 왜 필요한지 궁금합니다. 이 코드를 기준으로 위에 코드에서 workspace를 find하는 코드이고 커밋이나 transaction:t 를 해준곳이 없고 , 또한 어차피 return되면 초기화일텐데 여기서 t.rollback()을 해주는게 궁금합니다.
답변 1
0
1. 네 맞습니다. 4개가 세트가 된다고 보시면 됩니다.
2. 저 부분은 저장이 되는게 맞다고 판단되는데요. 백엔드 서버 콘솔에 찍히는 SQL을 직접 봐서 무슨 일이 생기는지 확인해봐야할 것 같습니다.
3. 저 부분은 필요 없습니다만 항상 예외 때는 롤백 적어주는 습관을 들이는 게 좋습니다. 하나라도 빼먹으면 치명적이거든요.
강의자료는 어디서 다운받나요?
0
141
4
질문 있습니다.
0
315
3
코드 편집기 확장 프로그램
0
220
2
(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?
0
161
2
(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문
0
177
3
로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.
0
161
2
로그인방법이 고민됩니다.
0
197
2
yarn seed 명령어 실행 시 데이터 삽입 안됨
0
305
4
yarn run db:create 시에 발생하는 데코레이터 오류
0
247
2
npm run db:create 시에 발생하는 decorating 오류
0
245
2
RxJS 디버깅 질문 있습니다.
0
198
3
CacheManager에 대해 질문 있습니다.
0
184
2
로깅은 어떻게 하는게 효율적일까요?
0
237
1
CORS 질문 있습니다.
0
425
2
쿠키 옵션에 대해서 질문 있습니다.
0
188
2
로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??
0
458
1
401 unauthorized문제
0
304
1
가드의 장점에 대해서 질문이 있습니다.
0
232
1
로그 관리에 대해 질문 있습니다.
0
254
2
CORS 에러 질문 있습니다.
0
328
2
배포 환경 DB 연결 질문 있습니다.
0
417
2
socket io 미 연결 문제 (nest & flutter)
1
1166
3
no elements in sequence 에러 관해서 질문이 있습니다.
0
462
1
start:dev-backup으로 돌리면 핫 리로딩이 되요 정상인가요?
0
324
1





