Notice
Recent Posts
Recent Comments
Link
반응형
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

David의 블로그

[Spring Boot] JPA 커스텀 쿼리 메소드에 @Transactional 붙이기 본문

프로그래밍/Spring Boot

[Spring Boot] JPA 커스텀 쿼리 메소드에 @Transactional 붙이기

David 리 2025. 5. 22. 13:55
반응형

[@Transactional이란???]

Spring 프레임워크에서 제공하는 어노테이션으로, 선언적 트랜잭션 관리를 위해 사용된다.

이 어노테이션이 붙은 메소드를 실행될 때, Spring은 해당 메소드 실행을 하나의 트랜잭션으로 묶어 관리를 한다.

 

여기서 잠깐 트랜잭션이란

데이터베이스의 상태를 변경하기 위해 수행하는 작업의 단위이다. 간단히 말해 INSERT, UPDATE, DELETE와 같은 

쿼리를 사용해 하나의 묶음으로 취급한다는 것이다.

 

다시 이어서 이야기를 해보겠다.

JPA에서 기본적으로 제공하는 쿼리 메소드 (deleteAll(), deleteById()..)는 기본적으로 @Transactional이 적용돼 있다.

따라서 기본 쿼리 메소드를 사용하는 경우에는 서비스 로직에만 어노테이션을 붙여 트랜잭션으로 관리하는 것이 일반적이다.

잠시 캡처된 이미지를 보겠다.

[ org.springframwork.data.jpa.repository,support.SimpleJpaRepository.class]

보는 바와 같이 선언을 따라 들어간 모습이고, 어노테이션이 붙어 있는 것을 확인할 수 있다.

 

 

나 같은 경우에는 커스텀을 해줘야 했기 때문에,

서비스, 레포지토리 단위에도 어노테이션을 설정해줬다.

[UsersService.java]

 

 

[UsersRepository.java]

이렇게 말이다.

 

끝!!

반응형