JPA/JPA원리22 6 JPA 객체와 테이블 매핑, 데이터베이스 스키마 자동 생성 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C JPA 객체와 테이블 매핑 @Entity @Table 객체와 테이블 매핑을 위해서는 @Entity, @Table 어노테이션을 사용합니다. 위처럼 name 속성을 사용하여 @Entity에 사용하면 엔티티의 이름, @Table에 사용하면 매핑할 테이블의 이름이 됩니다. 디폴트는 현재 엔티티클래스의 이름인 Member로 됩니다. @Entity 가 붙은 클래스는 JPA가 관리하는 엔티티 클래스가 됩니다. 하여 JPA를 사용하여 테이블과 매핑시 해당 어노테이션은 필수입니다. 주의할 점은 1. 기본 생성자(파라미터 없는 생성자)가 있어야 하며, .. 2021. 7. 4. 5 JPA 준영속 상태 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 영속화되는 상황은 두가지가 있습니다. 1. persist했을 때 2. find를 했는데 1차 캐시에 없어서 DB에서 가져온 후, 영속성 컨텍스트에 엔티티를 올려둔 경우 그렇다면 준영속 상태란? 영속 상태의 엔티티가 영속성 컨텍스트에서 분리(detached)되는 경우. 이렇게 되면 영속성 컨텍스트가 제공하는 기능을 사용할 수 없음(더티체킹, 지연 로딩 등등...) 준영속 상태로 만드려면 아래와 같이 하면 됩니다.(주석 참고) 준영속 상태로 만드는 3가지 방법 : em.detach(entity) : 특정 엔티티만 준영속 상태로 만들기 em.. 2021. 7. 3. 4 JPA 플러시(flush) 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 플러시 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것입니다. 플러시가 발생하는 순서는 아래와 같습니다. 1. 변경 감지 (dirty checking) 2. 수정된 엔티티 '쓰기 지연 SQL 저장소'에 등록 3. '쓰기 지연 SQL 저장소'의 쿼리를 데이터베이스에 전송 (등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시하는 방법은 3가지가 있습니다. 1. em.flush() (직접 호출) 2. 트랜잭션 커밋 (플러시 자동 호출) 3. JPQL 쿼리 실행 (플러시 자동 호출) 이제 위의 3가지 방법으로 영속성 컨텍스트를 flu.. 2021. 7. 3. 3 JPA 영속성 컨텍스트 이해하기 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 영속성 컨텍스트는 엔티티를 영구 저장하는 환경이라는 의미로, 눈에 보이지 않는 논리적인 개념입니다. 이 영속성 컨텍스트에 접근하기 위해서는 EntityManagerFactory와 EntityManager를 통해 접근해야 합니다. EntityManager, EntityManagerFactory 엔티티의 생명주기 엔티티의 생명 주기에는 4가지 단계가 있습니다. 1. 비영속( new / transient ) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 (ex. A객체를 new했을 때) 2. 영속( managed ): 영속성 컨텍스트에.. 2021. 7. 3. 이전 1 2 3 4 5 6 다음