여기서 출력은 당연히 Member라는 객체에서 가져오기 때문에 gun이 다 찍히게 되고 쿼리는 member를 persist한 순간 insert 쿼리가 하나 저장되고 flush한 순간 dirty checking을 통해 member가 삭제됨을 알고 delete 쿼리가 하나
DB입장에선 3가지 다 매핑하도록 지원. 상위 클래스를 추상클래스로 만들어줘야함! 정교화된 방식 조인전략. jpa와 가장 유사한 모델 @Inheritance(strategy = InheritanceType.JOINED) 사용 @DiscriminatorColumn 을
JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기(Object Relation Mapping) 영속성 컨텍스트 JPA 이해하는데 가장 중요한 용어 "엔티티를 영구 저장하는 환경" EntityManager.persist(entity); 영속성 컨텍스트라
엔티티 실체, 객체 데이터베이스에서 한 건의 자료를 구성하는 레코드를 말함. 엔티티 사이의 관계를 relationship이라 하고, 도표로 나타낸 것을 ERD(Entity Relationship Diagram)이다. 객체와 테이블 매핑 @Entity @Entity가
다대일 : @ManyToOne일대다 : @OneToMany일대일 : @OneToOne다대다 : @ManyToMany - 실무에서 사용 X테이블 외래키 하나로 양쪽 Join 가능방향이란 개념 X객체참조용 필드를 가지고 있는 객체만 연관된 객체를 조회할 수 있다.한쪽만 참
em.find() : 데이터베이스를 통해 실제 엔티티 객체 조회em.getReference() : 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회(DB에 쿼리 안날아가는 데 조회됨)프록시 객체는 실제 객체의 참조를 보관프록시 객체 호출하면 프록시 객체는 실제
즉시 로딩(fetch = FetchType.EAGER) JPA 구현체는 가능하면 조인을 사용해 SQL 한번에 함께 조회 주의 실무에서 사용하면 안됨! 즉시 로딩 적용시 예상 치 못한 SQL 발생 JPQL에서 N+1 문제 발생 @ManyToOne, @OneToOne은 기
JPA 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 값 타입 int, Integer, String 같은 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가 기본값
JPQL 가장 단순한 조회 방법 EntityManager.find() 객체 그래프 탐색(a.getB().getC()) JPA를 사용하면 엔티티 객체를 중심으로 개발 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색 모든 DB 데이터를 객체로 변환해