반응형
__ Postgresql Timestamp Entity 설정법
__ JPA 테이블 생성시간, 수정시간 자동생성 하는 법__
Postgresql Timestamp 형식 Entity 설정하는 법
아래랑 다른 형식 쓰면 bytea
로 들어가고 난리임
@Column(nullable = false, updatable = false)
private LocalDateTime createTime;
@Temporal(TemporalType.TIMESTAMP)
private Date loginTimestamp;
private Timestamp logTimestamp; // 매핑될 필드
Postgresql 의 DEFAULT CURRENT_TIMESTAMP 설정 주는 법
아래처럼 설정하면 DDL 에 DEFAULT CURRENT TIMESTAMP
들어감
@Column(updatable = false, insertable = false, nullable = false, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
private LocalDateTime createTime;
@Column(nullable = false, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
private LocalDateTime editTime;
자바에서 값 넣는법 (when Entity called)
아래와 같이 어노테이션을 통해 엔티티호출 상황에 맞게 시간값을 넣어줌
엔티티에 추가하면 됨
@PrePersist
protected void onCreate() {
this.createTime = LocalDateTime.now();
this.editTime = LocalDateTime.now();
}
@PreUpdate
protected void onUpdate() {
this.editTime = LocalDateTime.now();
}
@PrePersist
: 엔티티가 처음 데이터베이스에 저장될 때 호출. 엔티티가 데이터베이스에 새로 추가될 때 실행@PrePersist
: 엔티티가 데이터베이스에서 업데이트될 때 호출. 엔티티의 데이터가 변경되어 업데이트 될 때 실행
프로젝트 실행시마다 테이블 초기화된다면?
spring.jpa.hibernate.ddl-auto=update
반응형
'Spring > SpringBoot (JPA)' 카테고리의 다른 글
JPA 와 MyBatis 의 save/update 차이 (0) | 2024.11.25 |
---|---|
[스프링부트] 개발서버 운영서버 하나의 설정파일로 실행하기(application.yml) (1) | 2024.11.22 |