영속성이 뭔지도 모른체 JPA를 사용한다면 간단한 구현은 가능할지라도 큰 프로젝트를 경험하게 된다면 한계에 직면하게 될것이다.
그러니 꼭 이해하길 권한다. 저번 시간의 영속성 관리(1) - EntityManager (앤티티 매니저) 👨💼🏭 를 충분히 이해한 상태에서 이 글을 읽는게 수월할 것이다. 저자 김영한의 자바 ORM 표준 JPA 프로그래밍 📚 을 참고했다.
영속성 컨텍스트는 쉽게 말해 엔티티를 영구 저장하는 환경이란 뜻이다. 이것은 논리적 개념에 가깝고 눈에 보이지도 않는다.
엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다.
영속성 컨텍스트는 엔티티 매니저를 생성할 때 하나 만들어진다.
< 엔티티의 4가지 속성 >
1. 비영속(new/transient): 영속성 컨텍스트와 전혀 관계가 없는 상테
2. 영속(managed): 영속성 컨텍스트에 저장된 상태
3. 준영속(detached): 영송성 컨텍스트에 저장되었다가 분리된 상태
4. 삭제(removed): 삭제된 상태
Member member = new Memeber();
member.setId("member1");
member.setUsername("회원1");
@PersistenceContext
private EntityManager em;
em.persist(member);
@PersistenceContext
스프링이 처음 시작할 때, entity manager를 만들어서 빈으로 등록을 해둔다.
entity manager는 @Autowired가 아니고 특별하게 @PersistenceContext라는 어노테이션으로 주입을 해줄 수 있다.
근데 최신 스프링부트에서는 @Autowired로도 할 수 있다고 한다.
참고 : https://h32j00.tistory.com/78
em.detach(member);
em.remove(member);
🫠영속성 관리(5) - 엔티티 조회와 동일성 보장 (0) | 2022.05.29 |
---|---|
영속성 관리(4) - 엔티티 조회와 1차캐시 (0) | 2022.05.26 |
🤑영속성 관리(3) - 영속성 컨텍스트의 특징 (0) | 2022.05.14 |
👨💼🏭영속성 관리(1) - EntityManager (앤티티 매니저) (0) | 2022.05.07 |
댓글 영역