1. @Embedded , @Embeddable
π1.1 μλ리μ€
μΌλ°μ μΈ νμκ°μ μ κ²½μ°μ νμμ νννλ κ°λ¨ν λ°©λ²μ μμλ³΄κ³ , μ΄λ₯Ό μ’λ μλ―Έμλ κ°μ²΄λ‘ νννλ λ°©λ²μ μμλ³΄κ² μ΅λλ€.
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long uid;
β
private String name;
β
private String phoneNum;
β
private String zipCode;
private String address1;
private String address2;
}
μλ₯Όλ€μ΄ μ΄λ€ μ¬μ΄νΈμ νμκ°μ μ νλ μ¬μ©μκ° μ‘΄μ¬νλ€κ³ λ³΄κ² μ΅λλ€. μ΄λ₯Ό λ³΄ν΅ JPAμμλ μμ κ°μ μ½λλ‘ Entityλ₯Ό μμ±νκ² λ©λλ€. μμ λ°μ΄ν°μ€ zipCode, address1, address2 λ€μ λͺ¨λ κ°κ°, μ£Όμλ₯Ό νννλ νλμ λλ€.
νμ§λ§ μμ κ°μ΄ νννλ κ²½μ°, μ£Όμλ‘ μΈμνκΈ°μ μ½κ°μ μ΄λ €μμ΄ μμ΅λλ€. νλκ° λ λ§μμ§λ€λ©΄ λλμ± μ§μ λΆνκ² λ κ²μ λλ€. κ·Έλ λ€λ©΄ μ΄λ»κ²νλ©΄ μ‘°κΈ λ μ½κΈ° μ¬μ΄ μ½λλ‘ λ§λ€ μ μμκΉμ?
λ°λ‘ Address λΌλ νλμ κ°μ²΄λ‘ μμ 3κ°μ λ°μ΄ν°λ₯Ό λ¬Άλλ€λ©΄ μ‘°κΈ λ μ£ΌμλΌλ μλ―Έλ₯Ό νμ€νκ² ννν μ μμ κ²μ λλ€.
π1.2 @Embedded, @Embeddable μ¬μ©λ²
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long uid;
β
private String name;
β
private String phoneNum;
β
private Address address;
}
μμ μ£Όμλ₯Ό νννλ 3κ°μ λ°μ΄ν°λ₯Ό 1κ°μ μ£ΌμλΌλ μλ―Έμ κ°μ²΄λ‘ νννλ€λ©΄ ν¨μ¬λ κ°λ μ±μ΄ μ’μ μ½λλ‘ λ§λ€ μ μλ€κ³ λ§μλλ Έμ΅λλ€. μμ μ½λλ₯Ό νλ² λ³΄μμ£ . μ΄λ μ κ°μ? λ€ λκ° λ³΄λλΌλ ν¨μ¬ κ°λ μ±μ΄ λμμ‘λ€κ³ ν μ μμλ§νΌ ν¨μ¬ κ°λ¨ν΄μ‘μ΅λλ€.
μ μ²λΌ JPA Entityμμ Columnμ νλμ κ°μ²΄λ‘μ¨ μ¬μ©μ νκ³ μΆλ€λ©΄ @Embedded, @Embeddable μ΄λ Έν μ΄μ μ μ¬μ©ν΄μΌ ν©λλ€.
@Embeddable
public class Address {
private String zipCode;
private String address1;
private String address2;
}
μ°μ νλλ‘ νννκ³ μ νλ κ°λ μ ν΄λΉνλ ν΄λμ€λ₯Ό μμ±ν λ€ νλλ₯Ό μμ±ν©λλ€. κ·Έ ν, ν΄λμ€ μλ¨μ @Embeddableμ μ λ ₯ν©λλ€. (@Embeddableμ μ¬μ€ μλ΅λ κ°λ₯ν©λλ€.)
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long uid;
β
private String name;
β
private String phoneNum;
β
@Embedded
private Address address;
}
λ§μ§λ§μΌλ‘ Entity ν΄λμ€μμ μμ μμ±ν κ°μ²΄ νλλ₯Ό μμ±νκ³ , νλλ°λ‘μμ @Embeddedμ΄λ Έν μ΄μ μ λΆμ¬νλ©΄ λμ λλ€.
π2.3 κ²°κ³Ό

3κ°μ νλκ° μμ±λμ΄μλ κ²μ νμΈν μ μμ΅λλ€.
'Backendπ± > Spring JPA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [JPA] EntityManager and Persistence Context (0) | 2023.04.02 |
|---|---|
| JPA κΈ°μ΄ (1) + etc (0) | 2023.04.02 |
| [JPA] @GetMappingκ³Ό @PostMapping (0) | 2023.04.02 |
| μ€νλ§ ν¨ν€μ§ ꡬ쑰 (0) | 2023.04.02 |
| [JPA] μ€νλ§ λΆνΈμ JPA νμ© (0) | 2023.03.31 |