개발
[jpa] @Entity에 default 값을 설정하기
으아아아앜
2020. 3. 9. 17:18
- @MappedSuperclass 와 @Prepersist를 사용
(1) 추상클래스를 작성
@MappedSuperclass
public abstract class EntityDefaultValues {
@PrePersist
public void setDefaultValues(){};
}
(2) 위의 추상클래스를 상속받아 오버라이드, 이후 원하는 default 값 설정 로직 작성
@Entity
@Table(name = "TB_FILE_ATTACHMENT")
public class FileAttachment extends EntityDefaultValues{
//생략...
@Override
public void setDefaultValues() {
this.fileId = UUID.randomUUID().toString();
this.down = Optional.ofNullable(this.down).orElse(0);
}
}
- this.filedId 에는 무작위 문자열, this.down에는 null이라면 0을 입력
- JPA Auditing 어노테이션 사용하기(날짜)
(1) @EnableJpaAuditing 추가
@SpringBootApplication
@EnableJpaAuditing
public class PortfolioApplication {
//생략...
}
(2) @EntityListeners(AuditingEntityListener.class) 추가 및 컬럼에 어노테이션 사용
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BoardCore extends EntityDefaultValues implements StoredEntityIdentifier<Long> {
//생략...
@Column(name = "REG_DATE")
@CreatedDate
private LocalDateTime regDate;
}
- 칼럼에 @CreatedDate 또는 @LastModifiedDate를 사용