JPA Auditing ์ผ๋ก ์์ฑ/์์ ์๊ฐ ์๋ํํ๊ธฐ
๊ต์ก๊ณผ์ ๋์ ์ธ์ ๋ง๋ค์ด์ก๋์ง, ์ธ์ ์์ ๋์๋์ง์ ๋ฐ๋ฅธ ์ ์ง๋ณด์ ์ค์์ฑ์ ๋ฐฐ์ฐ์ง ๋ชปํ๋ค.
์ด์ ๋ชจ๋ธ๋งํ ๋ ๊ณ ๋ คํด์ ์ง์ผ๊ฒ ๊ตฐ...
๊ฐ์ ๋ด์ฉ์ธ๋ฐ ๋งค๋ฒ DB์ insert/update์ ํ๊ธฐ์๋ ์ฝ๋๊ฐ ์ฌ๊ธฐ์ ๊ธฐ ๋ค์ด๊ฐ๊ฒ ๋๋๊น
์์ฑ๋ ๋ ๊ฐ์ด ์์ฑ๋๋ฉด ํธ๋ฆฌํ๋ค!
domain ํด๋์ BaseTimeEntityํด๋์ค๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ
๋ชจ๋ Entity์ ์์ ํด๋์ค๊ฐ ๋๊ฒ ํ๋ฉด ๋๋ค.
1. @MappedSpuerclass ๋ฅผ ์ด์ฉํ๋ฉด JPA Entityํด๋์ค๋ค์ด BaseTimeEntity๋ฅผ ์์ํ ๊ฒฝ์ฐ ํ๋๋ค๋ ์ปฌ๋ผ์ผ๋ก ์ธ์ํ๋๋ก ํ๋ค.
2. @EntityListeners(AuditingEntityListener.class)๋ก ํด๋น ํด๋์ค์ Auditing๊ธฐ๋ฅ์ ํฌํจํ๋ค.
3.
@CreatedDate
private LocalDateTime createDate;
@LastModifiedDate
private LocalDateTime modifiedDate;
ํ๋ ์์ ๋ถ์ฌ์ฃผ๋ฉด Entity๊ฐ ์์ฑ๋์ด ์๊ฐ์ด ์๋ ์ ์ฅ๋๋ค
๋ง์์ฌ ใ ใ ...
Mybatis๋ฅผ ์ฌ์ฉํ์ ๋๋ ์ปฌ๋ผ์ ๋ ์ง ํ์ ์ผ๋ก ํ์ฌ ๋ ์ง๋ฅผ ๊ฐ์ง๊ณ ์ค๊ฑฐ๋,
์ง์ dto์ ๋ฃ์ด์คฌ๋๋ฐ @๋ง ๋ถ์ด๋ฉด ๋๋ค๋
4. Application ํด๋์ค์ ํ์ฑํ ์ด๋ ธํ ์ด์ ์ ์ถ๊ฐํ๋ค
@EnableJpaAuditing