변경감지 @Transactional

언젠간·2022년 12월 19일
0

스프링

목록 보기
2/3

변경감지란?

  • 변경감지가 발생하기 위해서는 @Transactional 어노테이션을 관련메소드에 모두 적용
  • 하나의 트랜잭션에 묶여 있어야
	- Controller
    memberService.insertName("userId", "userName1");
    
    - Service
    @Transactional
	public void insertName(String Id, String Name) {
		memberRepository.insertName(Id, Name);
	}
    
    - Repository
    @Transactional
	public void insertName(String Id, String Name) {
		Member member = findOneById(Id);
		member.setUserName(Name); // -> 변경감지
        
        // -> 메소드가 종료될 때 쓰기지연을 통해 update 쿼리 발생(flush)
		
	}
  • 수동으로 변경된 데이터를 저장하고 싶은 경우 save해줘야 함
	public void insertName(String Id, String Name) {
		Member member = findOneById(Id);
		member.setUserName(Name); 
        
        memberRepository.save(member); //save를 이용한 update		
	}
profile
코딩왕이될사나이

0개의 댓글