작성
·
180
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가 실행됩니다.
따라서 메서드 리턴 시점에 트랜잭션이 커밋됩니다.
감사합니다.