개발 기록

211122 TIL (@Transactional,예약어) 본문

TIL

211122 TIL (@Transactional,예약어)

수염차 2021. 11. 22. 22:48

스프링 CRUD를 연습해보다가 서비스코드에 트랜잭셔널 어노테이션이 왜 붙는지 몰라서 찾아봤다.

 

트랜잭션은 ! 단일 작업 단위로 취급되는 시리즈 조치라고 한다 번역된 걸 봐서 어색한 단어이긴한데 

블로그에서 쉬운 말로 보면 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행되어야 하는 연산들.

아무튼 그래서 단일 트랜잭션에는 여러 작업이 있지만 그룹으로 모두 실패하거나 그룹으로 다 완료되어야 한다.

그림으로 보면 티켓을 사고 좌석 예매하는 이 두개의 단일 작업이 둘 중에 하나만 되는 것이 아니라 둘다 완료되야 커밋되어 db에 저장된다는 것 같다. 예약 트랜잭션이라고 한다면 두 단계가 단일 작업 단위로 수행되고 둘다 완전히 완료 되거나 그룹이 롤백될 떄 실패하도록 해야 한다.

 

(++ 롤백은 데이터베이스에서 업데이트에 오류가 발생할 때, 이전 상태로 되돌리는 것을 말한다. / 작업 중 문제가 발생했을 때, 트랜젝션의 처리 과정에서 발생한 변경 사항을 취소하고, 트랜젝션 과정을 종료시킨다. )

 

그래서 @Transactional을 붙이게 되면 해당 클래스나 메소드를 트랜잭션 관리할 수 있게 된다.

비즈니스 로직에 왜 트랜잭션을 사용하는지 조금 알 것 같다. 중간에 어떤건 되고 어떤건 안되면 꼬이니까 될꺼면 아예 안 되는게 맞겠다.

 


서버 실행 오류 !

 

Error executing DDL "create table 어쩌구저쩌구~

 

엔티티 클래스 테이블 생성하는데에서 오류가 났다. 찾아보니 변수명이 예약어면 에러가 뜬다.

변수명을 limit 으로 한게 있는데 limit은 SQL 예약어라고 한다. 고치니 해결 !(++ 예약어 : 컴퓨터 프로그래밍 언어에서 이미 문법적인 용도로 사용되고 있기 때문에 식별자로 사용할 수 없는 단어들 )

 

 

 

참고자료

Spring Data JPA의 트랜잭션 소개

 

Introduction to transaction in Spring Data JPA

In this article, we will introduce to transaction with Spring Data JPA, how many ways to implement it in our project. Let’s get started. Table of contents Introduction to Transaction Using transaction with Spring Benefits and Drawbacks Wrapping up Introd

ducmanhphan.github.io

[Java]@Transactional Annotation 알고 쓰자

'TIL' 카테고리의 다른 글

211124 TIL ( responesDto )  (0) 2021.11.25
211124 TIL ( 스프링 S3 파일 업로드)  (0) 2021.11.25
211121 WIL  (0) 2021.11.21
211120 구현테스트(1119) 복습  (0) 2021.11.20
211118 타임어택(1001) 스프링으로 바꾸기  (0) 2021.11.18
Comments