SPRING
self-invocation
같은 클래스 내부 호출에서 @Transactional이 조용히 무시되는 self-invocation 문제의 원인과, REQUIRES_NEW를 안전하게 쓰는 해결 방법을 정리합니다.
같은 클래스 내부 호출에서 @Transactional이 조용히 무시되는 self-invocation 문제의 원인과, REQUIRES_NEW를 안전하게 쓰는 해결 방법을 정리합니다.
같은 서비스 안에서 @Transactional 메서드를 자기 호출해 롤백이 안 되는 문제를 실제 운영 코드에서 겪고 해결한 과정을 기록합니다.
같은 서비스 안에서 @Transactional 메서드를 자기 호출하면 프록시가 적용되지 않아 롤백이 안 되는 원인을 정리합니다.
JPA의 save와 saveAll을 각각 10,000건씩 테스트하여 실행 시간을 비교하고, saveAll이 더 빠른 이유를 프록시 기반 @Transactional 동작 원리로 설명합니다.
JPA 프록시 객체가 만들어지고 초기화되는 과정을 em.getReference() 예제로 살펴보고, 프록시 사용 시 주의할 점을 정리합니다.
지연 로딩과 즉시 로딩의 동작 차이를 프록시 조회 관점에서 정리하고, 실무에서 지연 로딩을 써야 하는 이유를 짚습니다.