끄적끄적
[jpa] @Entity에 default 값을 설정하기 본문
- @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를 사용
'개발' 카테고리의 다른 글
[jpa] querydsl BooleanBuilder 사용하기 (0) | 2020.03.09 |
---|---|
[spring] filter에서 예외응답하기 (0) | 2020.03.09 |
[jpa] querydsl 사용하기 (0) | 2020.03.09 |
[spring] ControllerAdvice로 예외처리하기(+ 메세지 국제화) (0) | 2020.03.08 |
[java] localdatetime에서 milliseconds얻기 (0) | 2020.03.07 |