• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

더티체킹

21.10.20 14:57 작성 조회수 124

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

안녕하세요. fightnyy님

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

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

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

감사합니다.