인프런 커뮤니티 질문&답변

fightnyy님의 프로필 이미지

작성한 질문수

실전! 스프링 데이터 JPA

Web 확장 - 도메인 클래스 컨버터

더티체킹

21.10.20 14:57 작성

·

161

0

 안녕하세요 학습을 진행하던 중 궁금한 사항이 생겨 질문드립니다. 다름이아니라 더티체킹에 관한것인데요 

 

```java

@Transaction

public User updateAuthority(String userName, UserRole new Role) {
 User user = userRepository.findByUserName(userName);

System.out.println("---변경 감지 시작 ---");

user.setRole(newRole);

System.out.println("---변경 감지 끝---");

return user;

}

아래와 같은 메소드를 실행시켜서 더티체킹이 언제 감지되나 실험해보았는데 보니까 return user를 하고 나서 실행되는거 같더라구요. 혹시 더티체킹이 끝나서 DB에 update 쿼리가 나가는 시점이 정확히 알 수 있을까요? 

수업 너무 감사합니다!

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

2021. 10. 20. 20:47

안녕하세요. fightnyy님

트랜잭션 커밋 시점에 더티체킹이 실행됩니다.

@Transaction 애노테이션이 있어서 트랜잭션 AOP가 실행됩니다.

따라서 메서드 리턴 시점에 트랜잭션이 커밋됩니다.

감사합니다.

fightnyy님의 프로필 이미지

작성한 질문수

질문하기