songining

Ex) Member μ—”ν‹°ν‹°

//κΈ°κ°„ Period
@Embedded
private Period workPeriod;

//μ£Όμ†Œ
@Embedded
private Address homeAddress;

 

Ex) Period 

@Embeddable
public class Period {
    private LocalDateTime startDate;
    private LocalDateTime endDate;
    
    μƒμ„±μž
    Getter, Setter 
    .
    .
 }

 

- ν΄λž˜μŠ€ν˜•νƒœλŠ” κΈ°μ‘΄κ³Ό κ°™κ²Œ ν•˜λ©° μœ„μ™€ 같이 더 객체지ν–₯적으둜 관리 κ°€λŠ₯ 

- μž„λ² λ””λ“œ νƒ€μž…μ„ μ‚¬μš©ν•˜κΈ° μ „κ³Ό 후에 λ§€ν•‘ν•˜λŠ” ν…Œμ΄λΈ”μ€ κ°™λ‹€. 

 

@AttributeOverrides(μ†μ„±ν•˜λ‚˜), @AttributeOverride(속성 μ—¬λŸ¬κ°œ)

Ex) μž„λ² λ””λ“œ νƒ€μž… Address 에 λŒ€ν•˜μ—¬ νšŒμ‚¬μ£Όμ†Œ, μ§‘μ£Όμ†Œμ™€ 같이 같은 κ°’ νƒ€μž… μ‚¬μš©ν•˜κ³  싢은 경우 μ‚¬μš©!

 

μž„λ² λ””λ“œ νƒ€μž… 같은 κ°’ νƒ€μž…μ„ μ—¬λŸ¬ μ—”ν‹°ν‹°μ—μ„œ κ³΅μœ ν•˜λ©΄ μœ„ν—˜ν•¨(κ°μ²΄νƒ€μž…μ˜ ν•œκ³„) -> μž„λ² λ””λ“œ κ°’ λ³€κ²½ μ‹œ ν•΄λ‹Ή 값을 곡유 ν•˜λŠ” λͺ¨λ“  μ—”ν‹°ν‹°μ˜ 값이 변경됨 (버그 λ°œμƒ)

ν•΄κ²°μ±…? 객체 νƒ€μž…μ„ μˆ˜μ •ν•  수 μ—†κ²Œ λ§Œλ“€λ©΄ λΆ€μž‘μš© 차단 

-> μƒμ„±μžλ‘œλ§Œ 값을 μ„€μ •ν•˜κ³  setter λ§Œλ“€μ§€ μ•ŠμœΌλ©΄ 됨

-> Integer, String은 μžλ°”κ°€ μ œκ³΅ν•˜λŠ” λŒ€ν‘œμ μΈ λΆˆλ³€κ°μ²΄ 

-> 즉 μˆ˜μ •ν•˜κ³  μ‹Άλ‹€λ©΄ ν†΅μœΌλ‘œ κ°ˆμ•„λ‚€λ‹€. Ex) μˆ˜μ •λœ κ°’μœΌλ‘œ address 객체 μƒˆλ‘œ λ§Œλ“€μ–΄μ„œ κ°ˆμ•„λΌμ›€ 

 

κ°’ νƒ€μž… -> κΉ”λ”ν•˜κ²Œ μ „λΆ€ λΆˆλ³€κ°μ²΄λ‘œ λ§Œλ“€μž(1. setter μ—†μ• κ³  μƒμ„±μžλ‘œλ§Œ μ΄ˆκΈ°ν™” 2. setterλ₯Ό private으둜) 

- κΈ°λ³Έ κ°’ νƒ€μž… (int, double, Integer, Long ,String)

- μž„λ² λ””λ“œ νƒ€μž…

- μ»¬λ ‰μ…˜ κ°’ νƒ€μž… 

'BACKEND > Spring' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

객체지ν–₯쿼리  (0) 2022.01.19
κ°’ νƒ€μž… μ»¬λ ‰μ…˜  (0) 2022.01.18
SpringBoot JPA CASCADE 예제  (0) 2022.01.17
ν”„λ‘μ‹œ  (0) 2022.01.16
상속관계 맀핑 + κ³ κΈ‰ 맀핑  (0) 2022.01.15