공부 방법 인프런 강의 보기 로드맵 JPA 기본 1회독(2/2~) JPA 활용 1 1회독 (1/26~2/2)
JPA ORM 기술 표준 ORM : 객체 관계 매핑 객체는 객체대로 설계하고 관계형 데이터베이스는 관계형 데이터베이스대로 설계 ORM 프레임워크가 중간에서 매핑 JPA를 사용해야 하는 이유 SQL 중심적인 개발에서 객체 중심으로 개발 생산성 : CRUD가 간단
엔티티 매니저 팩토리를 통해서 고객의 요청이 오면 엔티티 매니저를 생성엔티티 매니저는 내부적으로 데이터베이스 커넥션을 사용하여 디비를 사용엔티티를 영구 저장하는 환경 EntityManager.persist(entity);persist 메서드는 엔티티를 디비에 저장하는것
객체와 테이블 매핑 : @Entity, @Table필드와 컬럼 매핑 : @Column기본 키 매핑 : @Id연관관계 매핑 : @ManyToOne,@JoinColumn@Entity가 붙은 클래스는 JPA가 관리하는 엔티티JPA를 사용해서 테이블과 매핑할 클래스는 @Ent
방향(Direction) : 단방향, 양방향다중성(Multiplicity) : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 연관관계의 주인(Owner) : 객체 양방향 연관관계는 관리 주인이 필요1:N의 관계일 때, 외래키가 있는 쪽이 N객체를
다중성다대일 : @ManyToOne일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany, 다대다는 실무에서 사용하면 안됨단방향, 양방향테이블외래 키 하나로 양쪽 조인 가능객체참조용 필드가 있는 쪽으로만 참조 가능한쪽만 참조하면 단방
객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 (슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사)DB의 슈퍼타입, 서브타입이라는 논리 모델링기법을 어떤 세가지 방법을 사용하여 구현하던지 다 매핑하도록 지원DB 입장에서 어떤 방법으로 구현하더라도
em.find(): 데이터베이스를 통해서 실제 엔티티 객체 조회em.getReference() : 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회, DB에 쿼리가 나가지 않는데 객체가 조회 됨getReference()를 호출하는 시점에는 DB에 쿼리를 내보내
JPA의 데이터 타입 분류 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 값 타입 int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 식별자가 없고 값만 있으므로 변경시 추적 불가 종류
객체지향 쿼리 언어 JPA를 사용하면 엔티티 객체를 중심으로 개발 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색 해야함 보통 JPQL이나 QueryDSL를 사용 JPQL JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어 제공 가장 단순한 조
경로 표현식 .(점)을 찍어 객체 그래프를 탐색하는 것 상태 필드(state field) : 단순히 값을 저장하기 위한 필드 (m.username), 경로 탐색의 끝, 탐색이 더이상 되지 않음 연관 필드(association field) : 연관관계를 위한 필드 단
프로젝트 환경설정 엔티티 매니저를 통한 모든 변경은 항상 트랜잭션 안에서 이루어져야하기 때문에 트랜잭션을 걸어줘야 함 @Transactional이 테스트 케이스에 있으면 테스트가 끝난 다음 바로 롤백 > 실제로 데이터 저장 X 롤백을 적용하기 싫으면 @Rollback