본문 바로가기
Java/JPA

[JPA_Basic] 일대다 매핑 시, ArrayList를 사용하는 이유

by HJ0216 2023. 8. 15.

이 글은 김영한의 [자바 ORM 표준 JPA 프로그래밍 - 기본편] 수강하며 정리한 글입니다.

 

👉 기본 환경

- Language: Java

- DB: H2 Database

- IDE: IntelliJ

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@Entity
public class Member {
 
    @Id @GeneratedValue
    @Column(name = "MEMBER_ID")
    private Long id;
    private String name;
    private String city;
    private String street;
    private String zipcode;
 
    @OneToMany(mappedBy = "member")
    private List<Order> orders = new ArrayList<>();
 
    public Long getId() {
        return id;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getCity() {
        return city;
    }
 
    public void setCity(String city) {
        this.city = city;
    }
 
    public String getStreet() {
        return street;
    }
 
    public void setStreet(String street) {
        this.street = street;
    }
 
    public String getZipcode() {
        return zipcode;
    }
 
    public void setZipcode(String zipcode) {
        this.zipcode = zipcode;
    }
 
}
 
 
 

Member : Order = 1 : 다

 

1명의 사용자가 여러개의 주문을 할 수 있으므로 Order는 List로 저장

 

private List<Order> orders; 가 아닌 private List<Order> orders = new ArrayList<>(); 이유

    - private List<Order> orders는 기본적으로 null값을 갖게 됨

    - 초기화를 하지 않고 orders에 대한 연산 실행 시, NullPointerException이 발생할 수 있음

    - 그러므로 Entity에서 초기화하여 NullPonterException 방지