목차

  • save() 사용하여 수정
    • save()
    • orElseThrow()
  • @Transactional 어노테이션 사용하여 수정 ( = 더티체킹)
    • @Transactional
    • 터티체킹

 

 

 

1. save() 사용하여 수정

** save() : insert, update 에 사용되는 메소드 

** orElseThrow() : Java는 매개변수로 함수를 못 받지만(parsing을 못하기 때문) Java 1.5부터는 람다식으로 함수 사용 가능

 

  1. postman에서 보낸 데이터를 requestUser.get... 으로 받아서 setId에 수정한 데이터를 매개변수(id)로 저장
  2. 수정할 데이터 외의 데이터(username)가 null 값이 되기 때문에 에러 발생
  3. 기존 데이터를 찾아(findById) 해당 데이터의 특정 변수들만 수정 (나머지 데이터는 그대로 유지)

 

1. postman에서 보낸 데이터를 requestUser.get... 으로 받아서 setId에 수정한 데이터를 매개변수(id)로 저장

 

2. 수정할 데이터 외의 데이터들이 null 값이 되기 때문에 에러 발생

 

3. 기존 데이터를 찾아(findById) 해당 데이터의 특정 변수들만 수정 (나머지 데이터는 그대로 유지)

 

4. DB 수정 확인

 

5. Http 수정 확인

 

 

 

 

 

2. @Transactional 사용하여 수정 (= 더티체킹)

** @Transactional : save 함수 없이 데이터 수정 가능

** 더티체킹 : dirty 상태(기존 데이터에 생긴 변화)를 검사하는 것, JPA에서는 트랜잭션이 끝나는 시점에 변화가 있는 모든 엔터티 객체를 DB에 자동으로 반영

 

  1. save() 주석처리
  2. 수정 메소드에. @Transactional 어노테이션 추가

 

1. save() 주석처리 / @Transactional 어노테이션 추가

 

2. 수정할 데이터 전송

 

3. 데이터 수정 확인

 

 

+ Recent posts