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