์ํฐํฐ์ ๊ด๋ จ๋ ์์ ์ ํ๋ค ๋ณด๋ฉด, ๋ฐ์ดํฐ์ ๋ฑ๋ก ์๊ฐ๊ณผ ์์ ์๊ฐ๊ณผ ๊ฐ์ด
์๋์ผ๋ก ์ถ๊ฐ๋๊ณ ๋ณ๊ฒฝ๋์ด์ผ ํ๋ ์นผ๋ผ๋ค์ด ์์ต๋๋ค.
์ด๋ฅผ ๋งค๋ฒ ํ๋ก๊ทธ๋จ ์์์ ์ฒ๋ฆฌํ๋ ์ผ์ ๋ฒ๊ฑฐ๋กญ๊ธฐ ๋๋ฌธ์
์๋์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ์ด๋ ธํ ์ด์ ์ ์ด์ฉํด์ ์ค์ ํฉ๋๋ค.
@MappedSuperclass๋ผ๋ ํน๋ณํ ์ด๋ ธํ ์ด์ ์ด ์ ์ฉ๋๋๋ฐ
ํด๋น ์ด๋ ธํ ์ด์ ์ด ์ ์ฉ๋ ํด๋์ค๋ ํ ์ด๋ธ๋ก ์์ฑ๋์ง ์์ต๋๋ค.
์ค์ ํ ์ด๋ธ์ BaseEntityํด๋์ค๋ฅผ ์์ํ ์ํฐํฐ์ ํด๋์ค๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ด ์์ฑ๋ฉ๋๋ค.
JPA์์ ์ฌ์ฉํ๋ ์ํฐํฐ ๊ฐ์ฒด๋ค์ ์์ ์ฝํ ์คํธ๋ผ๋ ๊ณณ์์ ๊ด๋ฆฌ๋๋ ๊ฐ์ฒด์ ๋๋ค.
์ด ๊ฐ์ฒด๋ค์ด ๋ณ๊ฒฝ๋๋ฉด ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ด๋ฅผ ๋ฐ์ํ๋ ๋ฐฉ์์ ๋๋ค.
JPA๋ฐฉ์์์๋ ํด๋น ์ํฐํฐ ๊ฐ์ฒด๋ ์ ์ง๋๊ณ ํ์ํ ๋ ๊บผ๋ด์ ์ฌ์ฌ์ฉํ๋ ๋ฐฉ์์ด ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ด๋ฌํ ์ํฐํฐ ๊ฐ์ฒด์๋ ์ด๋ค ๋ณํ๊ฐ ์ผ์ด๋๋ ๊ฒ์ ๊ฐ์งํ๋ ๋ฆฌ์ค๋๊ฐ ์์ต๋๋ค.
JPA๋ด๋ถ์์ ์ํฐํฐ ๊ฐ์ฒด๊ฐ ์์ฑ/๋ณ๊ฒฝ๋๋ ๊ฒ์ ๊ฐ์งํ๋ ์ญํ ์ AuditingEntityListener๋ก ์ด๋ฃจ์ด์ง๋๋ค.
์ด๋ฅผ ํตํด์ regDate, modDate์ ์ ์ ํ ๊ฐ์ด ์ง์ ๋ฉ๋๋ค.
JPA๋ฅผ ์ด์ฉํ๋ฉด์ AuditingEntityListener๋ฅผ ํ์ฑํ์ํค๊ธฐ ์ํด์๋ ํ๋ก์ ํธ์
@EnableJpaAuditing ์ค์ ์ ์ถ๊ฐํด์ผํฉ๋๋ค.
4.3 ์ํฐํฐ ํด๋์ค์ Querydsl์ค์
๊ธฐ์กด์ ์ํฐํฐ ํด๋์ค๋ฅผ ์์ฑํ ๋์ ๋ฌ๋ฆฌ BaseEntityํด๋์ค๋ฅผ ์์ํด์ ์์ฑํ๋ ์ ์ด ์ข ๋ค๋ฆ ๋๋ค.
์ ๋ง๋ค์ด์ง ๊ฒ ํ์ธ
GuestbookRepository๋ ๋จผ์ ๊ธฐ์กด๊ณผ ๋์ผํ๊ฒ JpaRepository๋ฅผ ์์๋ฐ๋ ์ธํฐํ์ด์ค๋ก ๊ตฌ์ฑํฉ๋๋ค.
4.3.1 ๋์ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ๋ฅผ ์ํ Querydsl ์ค์
๋ณต์กํ ์กฐํฉ์ ์ด์ฉํ๋ ๊ฒฝ์ฐ์ ์๊ฐ ๋ง์ ์ํฉ์์๋ ๋์ ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด์ ์ฒ๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค.
Querydsl์ ์ด๋ฌํ ์ํฉ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ธฐ์ ์ ๋๋ค.
๋ณต์กํ ๊ฒ์์กฐ๊ฑด์ด๋ ์กฐ์ธ, ์๋ธ์ฟผ๋ฆฌ ๋ฑ์ ๊ธฐ๋ฅ๋ ๊ตฌํ์ด ๊ฐ๋ฅํฉ๋๋ค.
Querydsl๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ ์ํฐํฐ ํด๋์ค๋ฅผ Q๋๋ฉ์ธ ํด๋์ค๋ก ๋ณํํ๋ ๋ฐฉ์์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์
์ถ๊ฐ์ ์ธ ์ค์ ์ด ํ์ํฉ๋๋ค.
'Spring > ๐ฅ[spring]์ฝ๋๋ก ๋ฐฐ์ฐ๋ ์คํ๋ง ๋ถํธ ์น ํ๋ก์ ํธ_๊ตฌ๋ฉ๊ฐ๊ฒ ์ฝ๋ฉ๋จ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
4.3.2 ์ํฐํฐ์ ํ ์คํธ (0) | 2023.02.17 |
---|---|
4.3.1 ๋์ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ๋ฅผ ์ดํ Querydsl ์ค์ (0) | 2023.02.13 |
ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ง๋ค๊ธฐ (0) | 2023.02.06 |
3.4.3 ๋ถํธ์คํธ๋ฉ ํ ํ๋ฆฟ ์ ์ฉํ๊ธฐ (0) | 2023.02.05 |
3.2 Thymeleaf์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ (0) | 2023.02.04 |