본문으로 바로가기

kotlin 으로 spring boot 를 사용해서 개발을 하던 중. 
비슷한 기능을 파는 패키지인데.. 뭐가 다른걸까 한참 궁금해하다가 찾아보게 되었다. 

1. 패키지 경로

  • Jakarta: jakarta.transaction.Transactional
  • Spring: org.springframework.transaction.annotation.Transactional

2. 주요 차이점

기능적 차이

  • Jakarta @Transactional:
    • Java EE(현재 Jakarta EE) 표준의 일부
    • JTA(Java Transaction API) 기반 트랜잭션만 지원
    • 더 기본적인 옵션 세트 제공
  • Spring @Transactional:
    • Spring 프레임워크 전용 구현
    • 다양한 트랜잭션 관리자(JPA, JDBC, JTA 등) 지원
    • 더 풍부한 기능과 속성 제공


jakarta.transaction.Transactional 의 경우는 기본 옵션이라고 생각하면 될것 같다. 
org.springframework.transaction.annotation.Transactional 가 훨씬 다양하고 여러 기능을 제공한다. 

나의 경우 

@Transactional(value = Transactional.TxType.REQUIRES_NEW)

해당 코드를 jakarta.transaction.Transactional으로 사용 중이다가 변경하게 되었는데, 변경 코드는 아래와 같다. 

@Transactional(propagation = Propagation.REQUIRES_NEW)



KOTLINSOURCECODE카테고리의 다른글

map 과 forEach  (0) 2025.02.27
Page<T> 와 Slice<T>  (0) 2025.02.05