Posts.java
update 부분에 쿼리가 없는 이유는
JPA의 영속성 컨텍스트 때문입니다.
영속성 컨텍스트란?
: 엔티티를 영구 저장하는 환경으로 일종의 논리적 개념입니다.
JPA의 핵심 내용은 엔티티가 영속성 컨텍스트에 포함되어 있느냐 아니냐로 갈립니다.
만약 트랜잭션 안에서
데이터베이서에서 데이터를 가져오면?
이 데이터는 영속성 컨텍스트가 유지된 상태입니다.
이 상태에서 해당 데이터의 값을 변경하면
트랜잭션이 끝나는 시점에 해당 테이블에 변경분을 반영합니다.
즉, Entity의 값만 변경하면 Update 쿼리를 따로 해줄 필요가 없어지빈다.
이 개념을 더티 체킹이라고 합니다.
PostsRepository.java
PostsUpdateRequestDto.java
dto는 Entity의 필드 중 일부만 사용합니다.
따라서 생성자로 entity를 받아서 필드에 넣어줍니다.
PostsApiController.java
PostsApiControllerTest.java
참고서적 및 링크
: 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
'여니의 프로그래밍 study > Spring & Spring Boot' 카테고리의 다른 글
[스프링부트] Error parsing HTTP request header (0) | 2022.03.23 |
---|---|
[스프링부트] PostsApiControllerTest.java (조회기능) + h2 데이터베이스 콘솔 사용법 (0) | 2022.03.23 |
[스프링부트] HTTP 구조 - header , body (0) | 2022.03.22 |
[스프링부트] PostApiControllerTest.java (게시글 등록) (0) | 2022.03.22 |
[스프링부트] given - when - then 패턴 (0) | 2022.03.22 |