목록Backend/JPA (2)
우리는 Calisthenics 입니다!
Fetch Type JPA가 하나의 Entity를 조회할 때, 연관관계에 있는 객체들을 어떻게 가져올 것이냐를 나타내는 설정값 Eager : 연관 관계에 있는 Entity들을 모두 가져온다. Lazy : 연관 관계에 있는 Entity를 가져오지 않고, getter로 접근할 때 가져온다. N+1 문제 @ManyToOne, @OneToOne의 FetchType을 LAZY로 했을 때 발생 → DB에 상당한 부하를 일으키게 된다. N+1 문제 해결 방법 join fetch 사용 inner join 불필요한 쿼리문이 추가되는 단점이 있다. @EntityGraph 사용 outer join → Cartesian Product ⇒ 중복이 발생한다. → 해결 방법 1:n 필드의 타입을 Set으로 선언한다. → Linke..
객체와 관계형 데이터베이스의 차이 상속 객체는 상속관계가 있지만, 관계형 연관관계 객체는 reference를 가지고 있다. 관계형 데이터 데이터 타입 데이터 식별 방법 JPA Java Persistence API Java ORM 표준 ORM Object-Relational Mapping(객체 관계 매핑) 객체와 RDB를 ORM 프레임워크가 중간에서 매핑 객체는 객체대로 설계, RDB는 RDB대로 설계 JPA를 사용해야 하는 이유 객체 중심으로의 개발 생산성 유지보수 패러다임 불일치 해결 성능 지연 로딩과 즉시 로딩 지연 로딩: 객체가 실제 사용될 때 로딩 즉시 로딩: JOIN SQL로 한번에 연관된 객체까지 미리 조회 hibernate.hbm2ddl.auto 속성 운영 장비에는 절대 create, cre..