PC(PersistContext)이용해 DB접근하기

PC(PersistContext)
PC(퍼시스턴스 컨텍스트)
:
Server와 데이터 베이스 사이에 엔티티를 영구 저장하는 논리적인 영역을 의미한다.퍼시스턴스 : 영구히 기록하다는 뜻이다.(영속)
이거를 jpa=hibernate가 들고있다.
비영속 객체
:Repository가 PC
에게 쿼리를 주는 게 아니라 primarykey가 없는 객체를 줄 때 PC에 넣어지는 객체를 의미하며 DB에 저장 되지 않은 객체를 의미한다.
PC가 DB와 BR의 중개자 역할을 한다.
영속 객체
:DB에 쿼리를 날리고 DB에 ROW가 생기는 순간 PC의 BOARD객체는 영속 객체가 된다.br-pc-db-pc로 가는 과정

@Transactional
public Board save(Board board){
//비영속 객체
em.persist(board);//insert 되는거다.
//board -> 영속 객체
return board;
}
pc에 넣기 위한 dto를 entity로 변환하기
pc에 들어갈 수있는것은 entity 밖에 없다.
그렇기 때문에 dto를 entity로 변환해줘야한다.
package shop.mtcoding.blog.board;
import lombok.Data;
public class BoardRequest {
@Data
public static class SaveDTO {
private String title;
private String content;
private String username;
public Board toEntity(){//DTO를 ENTITY로 바꾸는 메서드
return new Board(title,content,username);
}
}
}
@PostMapping("/board/save")
public String save(BoardRequest.SaveDTO reqDTO){
BoardPersistRepository.save(reqDTO.toEntity());
return"redirect:/";
}
Share article