이 예제를 이해하기 위한 개념
https://un-lazy-midnight.tistory.com/99
JPA | 프록시(Proxy)란? 제대로 알고 쓰자!
프록시란 무엇일까? em.find()는 데이터베이스를 통해 실제 엔티티 객체를 조회한다면 em.getReference(): 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체를 조회한다. 이게 무슨 말이냐면... 프
un-lazy-midnight.tistory.com
https://un-lazy-midnight.tistory.com/100
JPA | 즉시 로딩(FetchType.EAGER)과 지연 로딩(FetchType.LAZY)
FetchType이란? JPA가 하나의 Entity를 조회할 때, 연관관계에있는 객체들을 어떻게 가져올 것이냐를 나타내는 설정값 JPA는 사용자가 직접 쿼리를 생성하지 않고, JPA에서 JPQL을 이용하여 쿼리문을 생
un-lazy-midnight.tistory.com
https://un-lazy-midnight.tistory.com/101
JPA | 영속성 전이(CASCADE)와 고아 객체란?
영속성 전이: CASCADE 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속상태로 만들고 싶을 때 예: 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장하는 경우 @OneToMany(mappedBy="parent",
un-lazy-midnight.tistory.com
예제 - 5
https://un-lazy-midnight.tistory.com/98
JPA | 예제로 알아보는 상속관계 매핑 (예제-4)
지난 글: https://un-lazy-midnight.tistory.com/96 JPA | 예제로 알아보는 연관관계 매핑 (예제-3) 예제 코드) https://un-lazy-midnight.tistory.com/94 JPA | 예제로 알아보는 연관관계 매핑 (예제-2) 지난 글: https://un-lazy-m
un-lazy-midnight.tistory.com
지난 글의 예제에 이어서 글로벌 페치 전략과 영속성 전이를 설정해보자.
각 엔티티의 연관관계에 따른 지연로딩 설정을 해준다.
결과 코드는 아래와 같다.
public class Order {
@Id @GeneratedValue
@Column(name="order_id")
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MEMBER_ID")
private Member member;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "DELIVERY_ID")
private Delivery delivery;
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)
private List<OrderItem> orderItems = new ArrayList<>();
public class OrderItem {
@Id
@GeneratedValue
@Column(name="order_item_id")
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ORDER_ID")
private Order order;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ITEM_ID")
private Item item;
public class Delivery {
@Id @GeneratedValue
private Long id;
private String city;
private String street;
private String zipcode;
private DeliveryStatus status;
@OneToOne(mappedBy = "delivery",fetch = FetchType.LAZY)
private Order order;
}
'💻dev > 🌱Java+Spring' 카테고리의 다른 글
JPA | 객체지향 쿼리 언어 간단 소개 (JPQL, Criteria, QueryDSL 등) (0) | 2023.05.02 |
---|---|
JPA | 예제로 알아보는 값 매핑 (예제 - 6) (0) | 2023.05.02 |
JPA | 값 타입 컬렉션이란? (저장, 조회, 수정 예제 및 주의사항) (0) | 2023.05.02 |
JPA | 값 타입은 변경이 가능할까? 불변 객체(immutable object)란? (+ 값 타입을 비교하는 방법) (0) | 2023.05.02 |
JPA | 기본값 타입과 임베디드 타입이란? (0) | 2023.05.01 |