spring-data-jpa에서 제공하는 JpaRepository의 기본 구현체는 SimpleJpaRepository이고,
class 위에 기본적으로 @Transactional(readOnly = true)로 설정되어 읽기 트랜잭션으로 설정되어 있다.
그런데 save, delete 동작 수행하는 메서드는 트랜잭션이 적용되어야 하므로 @Transactional 어노테이션이 붙어 있는 것을 확인할 수 있다.
https://cupeanimus.tistory.com/102
@Transactional 옵션을 사용하지 않는다면?
일단 기본적으로 @Transactional 에서 많이 사용되는 readOnly 옵션의 default 는 false이다. 때문에 서비스레벨에서 해당 메서드의 Transaction 관리를 하려고 할때 대부분 @Transactional만 붙이고 있는 것이다.
cupeanimus.tistory.com
https://hyewoncc.github.io/jpa-transactional/
[JPA] @Transactional이 없다고 레포지토리가 왜 터져?
🧶 문제상황 서버 오픈 전 부하테스트로 대비하기의 경험으로, 요즘 코드를 짤 때 외부 호출이 끼어있다면 트랜잭션을 최소로 잡고 있다. 거기다 더티 체킹도 사용하지 않고 명시적으로 다시
hyewoncc.github.io
'JPA' 카테고리의 다른 글
실전! 스프링 데이터 JPA / 3. 예제 도메인 모델 (0) | 2024.09.26 |
---|---|
최범균 Spring Data JPA 기초 (0) | 2024.09.25 |
스프링 REST API 생성 원칙 (0) | 2023.06.13 |
JPA Entity에 index 거는 방법 (0) | 2022.11.26 |
객체지향 쿼리 언어(JPQL) (0) | 2022.09.03 |
댓글