@Transactional 어노테이션
👉 @Transactional
- 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행되어야 하는 연산들을 의미.
- begin, commit 을 자동으로 수행.
- 예외 발생 시 rollback 처리를 자동으로 수행.
👉 @Transactional 성질
# 원자성(Atomicity)
한 트랜잭션 내에서 실행한 작업들은 하나의 단위로 처리한다. 즉, 모두 성공 또는 모두 실패.
# 일관성(Consistency)
트랜잭션은 일관성 있는 데이타베이스 상태를 유지한다. (data integrity 만족 등.)
# 격리성(Isolation)
동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리해야한다.
# 영속성(Durability)
트랜잭션을 성공적으로 마치면 결과가 항상 저장되어야 한다.
👉 @Transactional 옵션
# isolation
트랜잭션에서 일관성없는 데이터 허용 수준을 설정.
# propagation
트랜잭션 동작 도중 다른 트랜잭션을 호출할 때, 어떻게 할 것인지 지정하는 옵션.
# noRollbackFor
특정 예외 발생 시 롤백 안함.
# rollbackFor
특정 예외 발생 시 롤백.
# timeout
지정한 시간 내에 메소드 수행이 완료되지 않으면 롤백 (-1일 경우 timeout을 사용하지 않는다)
# readOnly
읽기 전용으로 설정.
🙋♂️ 소감 :
1차 과제를 리마인드 하고자 타이핑하여 2차 과제를 진행 도중 로직은 맞는 거 같은데 자꾸 오류가 발생되었다.
한참을 들여다봤는데 임포트 과정에서 그냥 첫 번째에 뜨는 걸 생각 없이 임포트를 해버렸다...ㅎㅎ;
덕분에 그냥 단순히 서비스에서 쓰는 어노테이션이라고 생각했던 @Transactional 대해 간단히 정리를 해보았다 ^^;
😈 아는 내용이라고 그냥 넘어가지 않기! 😈
'❤️🔥TIL (Today I Learned)' 카테고리의 다른 글
[TIL] 2022-12-26(41day) (0) | 2022.12.27 |
---|---|
[TIL] 2022-12-23(40day) (0) | 2022.12.26 |
[TIL] 2022-12-21(38day) (0) | 2022.12.21 |
[TIL] 2022-12-20(37day) (0) | 2022.12.20 |
[TIL] 2022-12-19(36day) (0) | 2022.12.19 |
댓글