서버

SpringBoot - @Transactional 사용 (+어떤 패키지 사용해야할까)

탐훈 2024. 12. 26. 12:35
728x90

DB에 접근시에는 항상 트랜잭션 안에서 돌도록 잡아줘야한다.

 


 

@Transactional은 기본 값이

readonly = false이다. 

 

insert관련 내용이 있을 때는 사용해서는 안된다. 

 

만약 Service에서 

메소드가 10개인데 

9개가 insert형식이고 하나만 read 형식이면 다음과 같이 처리 가능하다.

 

@Service
@Transactional // 전부 insert형식 선언
public class MemberService {
    public Long insert1() {
    }

    public List<Member> insert2() {
    }

    @Transactional(readOnly = true) //하나만 read
    public Member insert3() {
    }
}

 

 

추가로

Transactional은 두가지의 패키지가 있는데

옵션이 많은 아래 패키지를 사용하는 편이 좋다

 

import org.springframework.transaction.annotation.Transactional;