β³οΈ λͺ©ν
β‘οΈ κ°μ²΄μ μ°Έμ‘°μ ν μ΄λΈμ μΈλν€λ₯Ό λ§€ννλ κ²
π€ ν΅μ¬ν€μλ
β λ°©ν₯ : λ¨λ°©ν₯κ³Ό μλ°©ν₯μ΄ μλ€. νμβ‘οΈν λλ νβ‘οΈνμ λ μ€ νμͺ½λ§ μ°Έμ‘°νλ κ²μ λ¨λ°©ν₯, μμͺ½ λͺ¨λ μ°Έμ‘°νλ κ²μ μλ°©ν₯μ΄λΌκ³ νλ€. λ°©ν₯μ κ°μ²΄ κ΄κ³μμλ§ μ‘΄μ¬νκ³ ν μ΄λΈ κ΄κ³λ νμ μλ°©ν₯μ΄λ€.
β‘ λ€μ€μ± : λ€λμΌ(N:1), μΌλμΌ(1:1), λ€λλ€(N:N) λ€μ€μ±μ΄ μλ€.
β’ μ°κ΄κ΄κ³ μ£ΌμΈ : κ°μ²΄λ₯Ό μλ°©ν₯ μ°κ΄κ΄κ³λ‘ λ§λ€λ©΄ μ°κ΄κ΄κ³μ μ£ΌμΈμ΄ μμ΄μΌνλ€.
1οΈβ£ λ¨λ°©ν₯ μ°κ΄κ΄κ³

- νμκ³Ό νμ΄ μλ€.
- νμμ νλμ νμλ§ μμλ μ μλ€.
- νμκ³Ό νμ λ€λμΌ κ΄κ³μ΄λ€.
- κ°μ²΄ μ°κ΄ κ΄κ³
- νμ κ°μ²΄λ Member.team νλ(λ©€λ²λ³μ)λ‘ ν κ°μ²΄μ μ°κ΄κ΄κ³λ₯Ό λ§Ίλλ€.
- νμ κ°μ²΄μ ν κ°μ²΄λ λ¨λ°©ν₯ κ΄κ³λ€. Member.Team νλλ₯Ό ν΅ν΄μλ§ νμ μ κ·Όμ΄ κ°λ₯νλ€.
- ν
μ΄λΈ μ°κ΄ κ΄κ³
- νμ λ°μ΄λΈμ TEAM_ID μΈλ ν€λ‘ ν λ°μ΄λΆκ³Ό μ°κ΄κ΄κ³λ₯Ό λ§Ίλλ€.
- νμ λ°μ΄λΆκ³Ό ν ν μ΄λΈμ μλ°©ν₯ κ΄κ³λ€. μμͺ½ λͺ¨λ JOIN μ΄ κ°λ₯νλ€.
β‘οΈ κ°μ²΄ μ°κ΄ κ΄κ³λ μΈμ λ λ¨λ°©ν₯μ΄λ©°, μλ°©ν₯μ κ°λ λ μ¬μ€μ 2κ°μ λ¨λ°©ν₯μ΄λ€. λ°λ©΄μ ν μ΄λΈμ μΈλν€ νλλ‘ μλ°©ν₯ JOIN μ΄ κ°λ₯νλ€.
β μμν κ°μ²΄ μ°κ΄κ΄κ³
//μμ 5.2 λμμ½λ
public static void main(String[] args) {
Member member1 = new Member ("memberl", "νμ1");
Member member2 = new Member ("member2", "νμ2");
Team team1 = new Team ("team1" , "ν1") ;
member1.setTeam(team1);
member2.setTeam(team1);
}
// κ°μ²΄ μ κ·Ό
Team findTeam = member1.getTeam();
β‘ ν μ΄λΈ μ°κ΄κ΄κ³
INSERT INTO TEAM (TEAM-ID, NAME) VALUES ('team1', 'ν1');
INSERT INTO MEMBER(MEMBER_ID, TEAM_ID, USERNAME)
VALUES ('member1', 'team1', 'νμ1') ;
INSERT INTO MEMBER(MEMBER_ID, TEAM_ID, USERNAME)
VALUES ('member2', 'team2', 'νμ2') ;
SELECT T.*
FROM MEMBER M
JOIN TEAM T ON M.TEAM ID = T.ID
WHERE M.MEMBER ID = 'member1'
β’ κ°μ²΄ κ΄κ³ λ§€ν

// μμ λ λΆλΆ : νμ Entity
@ManyToOne
@JoinColumn (name="TEAM ID")
private Team team;
β‘οΈ μλ‘κ² μ°μΈ μ΄λ Έν μ΄μ : (1) @JoinColumn (2) @ManyToOne
β£ @JoinColumn

β€ @ManyToOne

β‘οΈ EAGER μ κ²½μ° λ°λ‘ μ‘°μΈμ ν΅ν΄ μ 체 μ 보λ₯Ό κ°μ§κ³ μ€κ³ , LAZY μ κ²½μ° κ΄λ ¨λ λ°μ΄ν°λ₯Ό μ¬μ©ν λ μ‘°μΈμ μ€ννλ€.
4οΈβ£ μ°κ΄κ΄κ³μ μ£ΌμΈ
// μλ°©ν₯μΌλ‘ μ€μ ν κ²½μ° TEAM κ°μ²΄μ μΆκ°λ λ΄μ©
@OneToMany (mappedBy="team")
private List<Member> members = new ArrayList<Menber>() ;
β‘οΈ κ°μ²΄ μ°κ΄ κ΄κ³ : (μλ°©ν₯μ΄λΌκ³ λΆλ₯΄μ§λ§) νμ-ν / ν-νμ 2κ°μ λ¨λ°©ν₯ κ΄κ³
β‘οΈ ν μ΄λΈ μ°κ΄ κ΄κ³ : μΈλν€ νλλ₯Ό νμ©ν μλ°©ν₯ μ°κ΄κ΄κ³
β‘οΈ μΈλν€λ 1κ° μΈλ° λ¨λ°©ν₯ κ΄κ³λ 2κ°μ΄λ―λ‘ λ μ°κ΄κ΄κ³ μ€ μ΄λμ μΈλν€λ₯Ό κ΄λ¦¬ν΄μΌνλμ§μ λν μ΄μκ° μκΈ°λ©°, μ΄λ₯Ό μ°κ΄κ΄κ³μ μ£ΌμΈμ κ°λ μ ν΅ν΄ ν΄κ²°νλ€.
β μλ°©ν₯ λ§€νμ κ·μΉ : μ°κ΄κ΄κ³μ μ£ΌμΈ
β‘οΈ μλ°©ν₯ λ§€ν μ λ μ°κ΄κ΄κ³ μ€ λ°λμ νλλ₯Ό μ°κ΄κ΄κ³μ μ£ΌμΈμΌλ‘ μ ν΄μΌνλ€. μ°κ΄κ΄κ³μ μ£ΌμΈλ§μ΄ μΈλν€λ₯Ό κ΄λ¦¬ν μ μλ€. μ΄λ€ μ°κ΄κ΄κ³λ₯Ό μ£ΌμΈμΌλ‘ μ ν μ§λ mappedBy μμ±μ ν΅ν΄ κ²°μ ν μ μλ€.
β‘οΈ κ·Έλ λ€λ©΄ μ΄λ€ μ°κ΄κ΄κ³λ₯Ό μ°κ΄κ΄κ³μ μ£ΌμΈμΌλ‘ μ νλ κ²μ΄ μ’μκΉ?
β‘ μ°κ΄κ΄κ³μ μ£ΌμΈμ μΈλν€κ° μλ κ³³
β‘οΈ μ°κ΄κ΄κ³μ μ£ΌμΈμ ν μ΄λΈμ μΈλν€κ° μλ κ³³μ΄λ€.

'JPA π' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [JPA] μλ° ORM νμ€ JPA νλ‘κ·Έλλ° Ch.4 (0) | 2023.05.08 |
|---|---|
| [JPA] μλ° ORM νμ€ JPA νλ‘κ·Έλλ° Ch.3 (0) | 2023.05.05 |
| [JPA] μλ° ORM νμ€ JPA νλ‘κ·Έλλ° Ch.2 (0) | 2023.04.15 |
| [JPA] μλ° ORM νμ€ JPA νλ‘κ·Έλλ° Ch.1 (0) | 2023.04.07 |