Home
>
Spring
>
π[Spring] JPAμμ "μ°κ΄κ΄κ³μ μ£ΌμΈ" μ΄λ 무μμΌκΉμ?
Spring
Framework
π[Spring] JPAμμ βμ°κ΄κ΄κ³μ μ£ΌμΈβ μ΄λ 무μμΌκΉμ?
- λ μν°ν° μ¬μ΄μ μλ°©ν₯ κ΄κ³κ° μμ λ, μΈλ ν€(Foreign Key)λ₯Ό κ΄λ¦¬νλ μ£Όμ²΄κ° λλ μν°ν°λ₯Ό λ§ν©λλ€.
- μ°κ΄κ΄κ³μ μ£ΌμΈμ΄ λ μν°ν°λ§μ΄ λ°μ΄ν°λ² μ΄μ€μμ μΈλ ν€λ₯Ό μμ ν μ μμΌλ©°, μ΄λ‘ μΈν΄ κ΄κ³μ λ°©ν₯μ μ μνκ³ , κ΄λ¦¬μ μ±
μμ λΆλͺ
ν ν©λλ€.
1οΈβ£ μ°κ΄κ΄κ³μ μ£ΌμΈμ΄ νμν μ΄μ .
- κ°μ²΄μ κ΄κ³μμλ μλ°©ν₯ κ΄κ³λ₯Ό μ½κ² λ§λ€ μ μμ§λ§, κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμλ μΈλ ν€κ° νλμ ν
μ΄λΈμμλ§ μ‘΄μ¬νλ©°, νμͺ½μμλ§ μΈλ ν€λ₯Ό μ
λ°μ΄νΈν μ μμ΅λλ€.
- JPAλ μ΄λ¬ν κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ μ½μ λ°μνμ¬, μ΄λ μͺ½μ΄ κ΄κ³λ₯Ό κ΄λ¦¬ν κ²μΈμ§λ₯Ό μ§μ νλλ‘ ν©λλ€.
2οΈβ£ μ°κ΄κ΄κ³ μ£ΌμΈμ μ€μ λ°©λ².
- μ°κ΄κ΄κ³μ μ£ΌμΈμ
@ManyToOne
λλ @JoinToColumn
μ΄λ
Έν
μ΄μ
μ΄ μλ μν°ν°κ° λ©λλ€.
- μ£ΌμΈμ΄ μλ μν°ν°λ mappedBy μμ±μ μ¬μ©νμ¬ μ°κ΄κ΄κ³μ μ£ΌμΈμ μ§μ νλ©°, λ°μ΄ν°λ² μ΄μ€μ μν₯μ λ―ΈμΉμ§ μκ³ μ½κΈ° μ μ© νλλ‘λ§ μ¬μ©λ©λλ€.
3οΈβ£ μμ.
- νμκ³Ό ν μ¬μ΄μ λ€λμΌ(
@ManyToOne
) κ΄κ³κ° μλ κ²½μ°, νμ μν°ν°κ° μ°κ΄κ΄κ³μ μ£ΌμΈμ΄ λμ΄ νμ λν μΈλ ν€λ₯Ό κ°μ§κ² λ©λλ€.
@Entity
public class Memeber {
@Id
@GenereatedValue
private Long id;
@ManyToOne // μ°κ΄κ΄κ³μ μ£ΌμΈ
@JoinColumn(name = "team_id") // μΈλ ν€λ₯Ό 맀ν
private Team team;
// getters and setters
}
@Entity
public class Team {
@Id
@GeneratedValue
private Long id;
@OneToManay(mappedBy = "team") // μ£ΌμΈμ΄ μλμ λͺ
μ
private List<Member> members = new ArrayList<>();
// getters and setters
}
- μ¬κΈ°μ Memeber μν°ν°κ° μ°κ΄κ΄κ³μ μ£ΌμΈμ΄λ―λ‘
team_id
μΈλ ν€λ₯Ό μ§μ κ΄λ¦¬ν©λλ€.
- λ°λ©΄, Team μν°ν°λ members νλμ
mappedBy
λ₯Ό μ¬μ©νμ¬ κ΄κ³λ₯Ό μ°Έμ‘°λ§ νκ³ , λ°μ΄ν°λ² μ΄μ€μ μν₯μ λ―ΈμΉμ§ μμ΅λλ€.
4οΈβ£ μ°κ΄κ΄κ³ μ£ΌμΈμ μν κ³Ό μ¬μ©.
- μ£ΌμΈ μν°ν°μμλ§ μΈλ ν€ κ°μ μ€μ λ° λ³κ²½ν μ μμ΅λλ€.
- μ£ΌμΈμ΄ μλ μν°ν°μμ κ΄κ³λ₯Ό λ³κ²½ν΄λ λ°μ΄ν°λ² μ΄μ€μλ λ°μλμ§ μκΈ° λλ¬Έμ, κ΄κ³λ₯Ό λ³κ²½ν λλ μ£ΌμΈ μν°ν°μμ λ³κ²½ν΄μΌ ν©λλ€.
5οΈβ£ μ°κ΄κ΄κ³ μ£ΌμΈμ μλͺ» μ€μ νμ λ λ°μν λ¬Έμ .
- μ°κ΄κ΄κ³μ μ£ΌμΈμ μλͺ» μ€μ νλ©΄, μλν λλ‘ λ°μ΄ν°λ² μ΄μ€μ κ΄κ³κ° λ°μλμ§ μκ±°λ μΌκ΄λμ§ μμ μνκ° λ°μν μ μμ΅λλ€.