Goal >- JPA의 등장 배경에 대해 파악한다. SQL 중심 개발의 문제점 JPA의 개념을 이해한다. * JPA의 등장 배경(SQL 중심적인 개발의 문제점) >요즘 우리가 사용하는 수많은 서비스이 뒷편에는 엄청난 양의 데이터가 움직인다. 서비스의 입장에서
영속성 컨텍스트의 개념을 파악한다.엔티티의 상태영속성 컨텍스트의 이점을 파악한다.1차 캐시쓰기 지연변경 감지지연 로딩(내용이 크므로 나중에 다룬다.)JPA를 이해함에 있어 매우 중요하다.영속성 컨텍스트 : 데이터의 집합체인 엔티티를 영구 저장하는 환경을 의미한다.영속성
객체와 테이블 매핑에 필요한 annotation과 속성에 대해 파악한다.@Entity@Table@Entity가 붙은 클래스는 JPA가 관리하는 엔티티, 데이터 집합체이다.즉, 테이블과 매핑할 클래스는 @Entity가 필수이다.@Entity가 붙은 클래스는 기본 생성자가
필드와 컬럼 매핑에 필요한 annotation과 속성에 대해 파악한다.@Id@Column@Enumerated@Lob@Transient@Temporal@Entity가 붙은 클래스는 Primary Key를 필수로 가져야한다.자세한 내용은 JPA 기본 키 생성에서 다룬다.
기본 키 매핑 방법에 대해 파악한다.직접 할당 : @Id자동 생성AUTOIDENTITYSEQUENCETABLE개발 진영에서 setter를 통해 직접 생성한다.default로서, 방언에 따라 자동 지정된다.기본 키 생성을 DB에게 위임한다.일반적인 경우와 달리, pers
연관관계가 필요한 이유를 이해한다.단방향 연관관계를 이해한다.양방향 연관관계를 이해한다.양방향 연관관계의 주인을 이해한다.아래와 같은 객체와 테이블이 있다.하나의 Member는 하나의 Team에 소속될 수 있다.이제 객체를 테이블에 맞추어 구현해보자.위와 같이 구현할
객체와 테이블이 관계를 맺는 차이에 대해 이해한다.연관관계 주인의 필요성양방향 연관관계의 규칙을 파악한다.주인을 설정하는 기준을 파악한다.mappedBy아래와같은 엔티티와 테이블 구조가 있다.객체의 경우, Member에서 Team을 참조하기 위한 필드Team team와
다양한 연관관계 매핑의 특징과 방법을 파악한다.N : 1, @ManyToOne1 : N, @OneToMany1 : 1, @OneToOneN : M, @ManyToMany@JoinColumn 의 역할을 파악한다.가장 많이 사용하는 연관관계이다.외래 키가 있는 쪽이 연관관
상속관계 매핑에 필요한 주요 어노테이션을 파악한다.@Inheritance@DiscriminatorColumn@DiscriminatorValue@Inheritance 의 세 가지 전략을 파악한다.InheritanceType.JOINEDInheritanceType.SING
Proxy의 개념을 파악한다.프록시 객체의 초기화 과정을 이해한다.프록시의 특징을 파악한다.프록시 객체란, 실제 객체와 겉 모양은 같으나 실제 객체를 대신하여 동작하는 객체를 의미한다.실제 클래스를 상속받아서 만들어지며, 실제 객체의 참조(target)를 보관한다.em
즉시 로딩에 대해 파악한다.지연 로딩에 대해 파악한다.프록시에 대해 모른다면 JPA 프록시를 보고오자.즉시 로딩 : 조회하는 엔티티가 참조하는 엔티티도 JOIN query를 사용해 함께 조회한다.실무에서 즉시 로딩은 쓸 일이 없다. 지연 로딩만 사용하자.JPQL에서 N
영속성(cascade) 전이에 대해 파악한다.고아 객체에 대해 파악한다.특정 엔티티를 영속화 할 때, 연관 엔티티도 함께 영속화하고자 할 때 사용한다.영속성을 전이하지 않으면 persist()를 세 번 호출해야하지만, 영속성 전이를 통해 persist(parent)만으
임베디드 타입의 개념을 파악한다.임베디드 타입의 사용법을 파악한다.임베디드 타입의 특징을 파악한다.@AttributeOverride 의 용도를 파악한다.임베디드 타입의 한계와 대안을 파악한다.임베디드 타입 : 복합 값 타입이라고도 불리며, int String 등 여러
JPQL 소개JPQL의 기본 문법에 대해 파악한다.parameter binding 방법에 대해 파악한다.프로젝션에 대해 파악한다.페이징 기법에 대해 파악한다.FETCH JOIN에 대해 파악한다.벌크 연산에 대해 파악한다.지금까지 우리는 em.find() member.g