코딩과 결혼합니다

230906 - @Transactional을 걸어도 더티체킹이 안돼! 본문

코딩과 매일매일♥/Seoulvival

230906 - @Transactional을 걸어도 더티체킹이 안돼!

코딩러버 2023. 9. 6. 15:44
728x90

문제

true/ false로 바꿔주는 토글이 @Transactional을 걸어줘도 안먹음

 

이유

현재 인증된 사용자의 정보는 스프링 시큐리티에서 제공하는 것으로, 스프링 프레임워크 외부에서 관리되고 유지된다. 따라서 @Transactional 어노테이션이 있는 메서드를 호출하더라도, 해당 메서드는 일반적인 방식으로 실행되며 트랜잭션 처리가 이루어지지 않았다.

 

해결

userRepository.findById(userId) 호출로부터 반환된 user를 사용하였다. 객체는 영속성 컨텍스트에 의해 관리되며, 변경된 상태가 자동으로 데이터베이스에 반영된다.