47. PC(PersistContext)

박선규's avatar
Mar 13, 2024
47. PC(PersistContext)
 

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

notion image

PC(PersistContext)

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

br-pc-db-pc로 가는 과정

notion image
@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

p4rksk