Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
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
more
Archives
Today
Total
관리 메뉴

끄적끄적

[jpa] @Entity에 default 값을 설정하기 본문

개발

[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를 사용
Comments