트랜잭션
219
작성한 질문수 157
안녕하세요. 이건..그냥 궁금해서 여쭤보는건데요
우리가 트랜잭션을 걸지않아도 데이터베이스에서 내부적으로 알아서 트랜잭션 개념을 가지고있다고하면
저희가 그럼 트랜잭션을 선언해서 할 필요성이 있을까용 ?
답변 1
0
안녕하세요, SJ 님! 공식 서포터즈 codesweaver 입니다.
데이터베이스는 테이블의 로우 별로 트랜잭션을 관리합니다. 그러나 각 쿼리들 간의 관계를 알 순 업습니다.
만약 은행에서 A가 B에게 천원을 이체 한다고 하면 다음과 같은 쿼리가 발생할텐데요.
1) A, B 계좌 및 잔고 조회
2) A 계좌 천원 차감
3) B 계좌 천원 증가
데이터베이스는 여러 사람이 동시에 계좌/잔고 테이블에 접속할때 문제(동시성 문제)를 트랜잭션으로 관리할 순 있으나 1), 2), 3) 의 프로세스가 '하나의 작업'으로 처리되어야 한다는 사실은 알 수 없습니다. (하나의 작업이란 건, 1), 2), 3) 중 단 하나의 작업이라도 실패하면, 모든 작업을 실패로 처리한다는 뜻입니다. 원자성이라고도 합니다)
그래서 애플리케이션에서도 트랜잭션 단위로 프로세스를 묶을 수 있다면 매우 유용합니다.
데이터베이스는 보통 모든 쿼리가 실행된 직후 자동으로 커밋 을 하도록 되어있는데요,
애플리케이션은 이 자동 커밋 설정을 제어하며 모든 프로세스의 원자성을 구현합니다.
감사합니다.
벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?
0
58
2
inheritance startegy 선택시 고려사항
0
42
1
Entity 동등성 비교
0
47
1
실무 조언 관련 질문입니다.
0
69
1
H2데이터베이스 파일 생성
0
78
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
70
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
65
1
JPQL 메소드와 락
0
63
1
Delivery @OneToOne
0
73
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
105
2
UnsupportedOperationException 발생
0
97
3
H2 Database 연결이 안됩니다.
0
103
2
연관관계 매핑 질문드립니다.
0
95
2
h2데이터베이스 실행오류
0
116
2
persistence.xml
0
121
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
90
1
영속성 컨텍스트
0
77
1
JPA 프록시
0
108
1
Native Query와 MyBatis
0
83
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
97
1
임베디드 타입 예시 코드 관련 질문
0
126
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
103
3
인텔리제이 패키지 커서 단축키 질문
0
113
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
156
1





