Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바
- 성능테스트툴
- 백준
- 코드스테이츠 백엔드
- 구간합구하기
- 인텔리제이
- Spring MVC 구성요소
- 알고리즘
- 재귀함수
- List.of
- 백준 11659
- GCP
- String.valueOf()
- java
- 코딩테스트
- 클라우드에서 도커 실행하기
- 스택
- Array.asList
- OOP
- 코드스테이츠
- Spring Web MVC
- 11659
- 버블정렬
- vm인스턴스생성
- MySQL
- 싱글톤패턴
- Spring MVC 동작원리
- 투포인터알고리즘
- 프로그래머스
- 재귀와반복문
Archives
- Today
- Total
순간을 기록으로
JPA Audit 기능을 이용 BaseEntity를 만들어서 Entity의 생성일과 수정일을 관리하기 본문
Development/Spring
JPA Audit 기능을 이용 BaseEntity를 만들어서 Entity의 생성일과 수정일을 관리하기
luminous13 2022. 9. 21. 00:28상황
엔티티를 만들면 공통적으로 들어가는 속성이 있다.
생성일(creatAt)과 수정일(modifiedAt)이다.
매번 엔티티를 생성할 때마다 위 두 속성을 작성해주기 보다는 공통적으로 처리해주면 훨씬 편할 것이다.
BaseEntity.java
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {
@Column(updatable = false)
@CreatedDate
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime modifiedAt;
}
- @CreatedDate
- Entity가 생성되어 저장될 때의 시간을 자동으로 저장한다.
- @LastModifiedDate
- 조회한 Entity의 값을 변경할 때 시간을 자동으로 저장한다.
- @EntityListeners
- Entity의 Lifecycle과 관련된 이벤트들을 듣게해준다.
- @MappedSuperclass
- 엔티티 클래스는 엔티티끼리만 상속할 수 있다. BaseEntity는 이름만 엔티티지 사실 엔티티가 아니라 일반 클래스다. 따라서 엔티티 클래스가 일반 클래스를 상속하기 위해서는 일반 클래스에 이 애노티에션을 붙여야한다.
USER.java
@Getter
@NoArgsConstructor
@Entity
@Table(name = "USERS")
public class User extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false, unique = true, length = 100)
private String email;
@Column(nullable = false, length = 100)
private String password;
}
결과
정상적으로 생성일과 수정일 칼럼이 추가되었다.
'Development > Spring' 카테고리의 다른 글
[스프링] 테스트 코드로 API 요청과 응답 자동 검증하기 (0) | 2022.09.08 |
---|---|
@SpringBootTest vs. @WebMvcTest (0) | 2022.09.08 |
[스프링] properties와 yml 파일 변환하기 (0) | 2022.08.30 |
[스프링] Spring MVC 동작 방식과 구성요소 (0) | 2022.06.24 |
Jar 파일은 무엇일까? (0) | 2022.02.05 |
Comments