JpaAuditing ๐ค
Java์์ ORM ๊ธฐ์ ์ธ JPA๋ฅผ ์ฌ์ฉํด์ ๋๋ฉ์ธ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ๋งคํํ ๋ ๊ณตํต์ ์ผ๋ก ๋๋ฉ์ธ๋ค์ด ๊ฐ์ง๊ณ ์๋ ํ๋๋ ์ปฌ๋ผ๋ค์ด ์กด์ฌํ๋๋ฐ, ๋๋ฉ์ธ๋ง๋ค ๊ณตํต์ผ๋ก ์กด์ฌํ๋ค๋ ์๋ฏธ๋ ์ฝ๋๊ฐ ์ค๋ณต๋๋ค๋ ๋ป์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋๊ฐ
, ์ธ์
ํ๋๊ฐ์ ๋ํ ๊ธฐ๋ก์ ๋จ๊ฒจ๋๋ ๊ฒ์ด ์ค์ํจ
๊ทธ๋์ JPA์์ ๊ฐ์ํ๋ค
๋ผ๋ ๋ป์ ๊ฐ์ง Audit
์ด๋ผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๋ฐ, Spring Data JPA์์ ์๊ฐ์ ๋ํด์ ์๋์ผ๋ก ๊ฐ์ ๋ฃ์ด์ฃผ๋ ๊ธฐ๋ฅ์ด๋ค.. ๋๋ฉ์ธ์ ์์์ฑ ์ปจํ
์คํธ์ ์ ์ฅํ๊ฑฐ๋ ์กฐํ๋ฅผ ์ํํ ํ์ update๋ฅผ ํ๋ ๊ฒฝ์ฐ ๋งค๋ฒ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํด์ค์ผํ๋๋ฐ, audit์ ์ด์ฉํ๋ฉด ์๋์ผ๋ก ์๊ฐ์ ๋งคํํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ๋ฃ์ด์ฃผ๊ฒ ๋จ
Article.java && ArticleComment.java
@CreatedDate private LocalDateTime createdAt; // ์์ฑ์ผ์
@CreatedBy private String createdBy; // ์์ฑ์
@LastModifiedDate private LocalDateTime modifiedAt; // ์์ ์ผ์
@LastModifiedBy private String modifiedBy; // ์์ ์
๊ธ์ด ์์ฑ๋๊ฑฐ๋ ์์ ๋ ๋, auditing์ด ์๋์ผ๋ก ์ด๋ฃจ์ด์ ธ์ ๋ฐ์ดํฐ๋ฅผ ํด๋น ๋ณ์์ ๋ฃ์ด์ฃผ๊ฒ ๋จ
์์ง ์คํ๋ง ์ํ๋ฆฌํฐ๋ ๋ค๋ฅธ ์ธ์ฆ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์์๊ธฐ ๋๋ฌธ์ ์์ฑ์
, ์์ ์
๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ํ๋ฌ โ JpaConfig
์์ ์ค์
JpaConfig.java
@EnableJpaAuditing
@Configuration
public class JpaConfig {
@Bean
public AuditorAware<String> auditorAware() {
return () -> Optional.of("yun"); // TODO: ์คํ๋ง ์ํ๋ฆฌํฐ๋ก ์ธ์ฆ ๊ธฐ๋ฅ์ ๋ถ์ด๊ฒ ๋ ๋, ์์ ํด์ผํจ
}
}
์ด๋ฆ์ ๋ฐ์ดํฐ๊ฐ ์๊ฐ์ ๋ฐ๋ผ ์
๋ฐ์ดํธ ๋ ๋ ์ด๋ฆ์ ๊ฐ์ yun
์ด๋ผ๊ณ ์ ์ฅํ๊ฒ ๋ค๊ณ ์ธํ
'์คํ๋ง > ๊ฒ์ํ ๋ง๋ค๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JPA - OSIV (Open Session In View) (0) | 2023.01.22 |
---|---|
๊ฒ์ํ ํ์ด์ง ๋ง๋ค๊ธฐ (0) | 2023.01.18 |
๋๋ฉ์ธ ์ค๊ณ (0) | 2023.01.18 |
API ์ค๊ณํ๊ธฐ (0) | 2023.01.18 |
์ ์ฆ ์ผ์ด์ค ์์ฑํ๊ธฐ (0) | 2023.01.18 |