연관관계 매핑 : 멤버와 팀, 회원이 어디 소속되어있는지 1대다 , 다대1 다대다객체와 테이블 매핑 : @Entity, @Table필드와 칼럼 매핑 : @Column기본 키 매핑 : @Id@Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다.기본 생성자 필수 :
JPA가 관리하는 상태관리대상에서 제외하는 것update,dirtychecking등 사용 불가됨em.detach로 가능,관리를 안하기 때문에 변화가 있더라도 결과가 진행되지 않음update가 되지 않은 것을 확인clear 는 영속성 상태의 엔티티들을 전부 제거persi
변경을 감지하고수정된 엔티티를 쓰기 지연 SQL저장소에 등록한 후.쓰기 지연 SQL저장소의 쿼리를 데이터베이스에 전송하는 것이다.em.flush()로 직접 호출 가능하다.트랜잭션을 커밋하면 flush가 자동 호출된다.커밋전에 flush호출로 쿼리가 실행된것을 확인할 수
조회를 하면 jpa는 영속성 컨텍스트에서 1차캐시를 탐색한다. 1차캐시에 멤버엔티티가 있으면 그 값을 조회함, 디비를 거치지 않는다. 없으면 JPA가 DB에서 조회하고, 1차캐시에 저장 이후 반환한다.실무에선 고객의 비즈니스가 끝나면 영속성, 1차캐시를 지우기 때문에
객체와 관계형 데이터베이스 매핑(정적)영속성 컨텍스트 : 실제 어떻게 JPA가 내부에서 동작하는지 원리엔티티를 영구 저장하는 환경 이라는 뜻EntityManager.persist(entity)로 실행 가능영속성 컨텍스트는 논리적인 개념엔티티 매니저를 통해 영속성컨텍스트
JPA 를 이용해 스프링 애플리케이션을 생성하고 삽입, 수정, 삭제를 진행해보았다.객체를 생성하고 매핑하여 실제 데이터베이스에 해당 객체를 삽입할 수 있다.엔티티 매니저 팩토리는 하나만 생성해서 애플리케이션 전체에서 공유한다.엔티티 매니저는 쓰레드간에 공유해서는 안된다
JPA Prjoect에 사용될 프로젝트를 생성해보았다.실습용 데이터베이스로는 H2데이터베이스를 사용했다.ㄴ자바 라이브러리, 빌드 관리ㄴ라이브러리 자동 다운로드 및 의존성 관리ㄴJAVA 8ㄴ/META-INF/persistence.xml에 해당 파일을 위치시킨다. 기본 위