songining

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ƒ์†๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Œ 

 

1. ์กฐ์ธ ์ „๋žต (์ตœ์šฐ์„  ์„ ํƒ, ๋ณต์žกํ•œ๊ฒฝ์šฐ)

insert๋Š” ๋ถ€๋ชจ์™€ ์ž์‹์— 2๋ฒˆ / DTYPE์œผ๋กœ ์กฐ์ธํ•  ์ž์‹ ์—”ํ‹ฐํ‹ฐ ๊ตฌ๋ถ„ 

@Inheritance(strategy = InheritanceType.JOINED)

 

2. ๋‹จ์ผ ํ…Œ์ด๋ธ” ์ „๋žต(๋‹จ์ˆœํ•œ ๊ฒฝ์šฐ)

ํ•œ ํ…Œ์ด๋ธ”์— ํ•ฉ์นœ๋‹ค(JPA์˜ ๊ธฐ๋ณธ์ „๋žต์ž„)

@Inheritance(strategy = InheritanceType.SINGLE_TABLE)

 

๋ถ€๋ชจ ์—”ํ‹ฐํ‹ฐ์— ์ ์šฉ 

@DiscriminatorColumn //DTYPE

 

์ž์‹์—”ํ‹ฐํ‹ฐ ์ ์šฉ 

@DiscriminatorValue("A")//์ž์‹ ์—”ํ‹ฐํ‹ฐ ๊ตฌ๋ถ„์ž

 

 

@MappedSuperclass

- ์ƒ์†๊ด€๊ณ„ ๋งคํ•‘์€ ์•„๋‹ˆ์ง€๋งŒ ๊ณตํ†ต๋˜๋Š” ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ!!

- ์—”ํ‹ฐํ‹ฐ๋„ ์•„๋‹˜(ํ…Œ์ด๋ธ”๊ณผ ๋งคํ•‘๋˜์ง€ ์•Š๋Š”๋‹ค) 

- ์ž์‹ ํด๋ž˜์Šค์— ๋งคํ•‘ ์ •๋ณด๋งŒ ์ œ๊ณต 

- ์ถ”์ƒ ํด๋ž˜์Šค๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ 

- Ex) BaseEntity 

@MappedSuperclass
public abstract class BaseEntity { //์†์„ฑ ์ž์‹ํด๋ž˜์Šค์—๊ฒŒ ๋‚ด๋ ค์ฃผ๊ธฐ ์œ„ํ•จ
    private String createdBy;
    private LocalDateTime createdDate;
    private String lastModifiedBy;
    private LocalDateTime lastModifiedDate;
    .
    .
   }

'BACKEND > Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

SpringBoot JPA CASCADE ์˜ˆ์ œ  (0) 2022.01.17
ํ”„๋ก์‹œ  (0) 2022.01.16
pk ์‚ฌ์šฉ ์ „๋žต  (0) 2022.01.13
JPA ์˜์†์„ฑ  (0) 2022.01.13
JPA ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์ด์œ   (0) 2022.01.12