반응형
수정되거나, 생성된 날짜를 기록하는 컬럼이 중복되는데, 엔티티마다 이것을 작성하는 것보다,
BaseEntity를 작성해서, 중복되는 컬럼을 처리해보자
//BaseEntity.java
@MappedSuperclass
@EntityListeners(value = AuditingEntityListener.class)
@Getter
abstract class BaseEntity {
@CreatedDate
@Column(name = "regdate",updatable = false)
private LocalDateTime regDate;
@LastModifiedDate
@Column(name = "moddate")
private LocalDateTime modDate;
}
@MappedSuperclass
와 @EntityListeners(value = AuditingEntityListener.class)
를 추가한 추상클래스를 생성한다.
그뒤, main에 @EnableJpaAuditing
어노테이션을 추가함으로써, Entity가 데이터베이스에 스키마를 생성할 때, 추상클래스에 구현한 컬럼들이 각 스키마에 적용되도록한다.
위의 공통 컬럼을 사용하는 엔티티는 아래와 같이 구현한다.
@Entity
@Getter
@ToString
public class Member extends BaseEntity{
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long memberId;
private String email;
private String pwd;
private String nick;
private String gender;
private String phone;
private LocalDateTime birth;
private String zipcode;
private String address1;
private String address2;
private Long moneyPoint;
}
보면, BaseEntity를 상속하고 있는것이 보일것이다.
CreateDate와 UpdateDate가 자동으로 추가되는것을 볼 수 있다.
Uploaded by N2T
반응형
'JPA 게시판 > JPA' 카테고리의 다른 글
DTO QueryProjection (0) | 2023.04.02 |
---|---|
QueryDsl에서 동적쿼리를 해결하는법 (0) | 2023.04.02 |
@ManyToOne의 설정방법 (0) | 2023.04.02 |
SpringJpa리포지토리의 작성 (0) | 2023.04.02 |
연관관계 설정 (0) | 2023.04.02 |