----- Application.java -----------------------------------------------------------------------------------
@EnableScheduling
@EnableJpaAuditing
@SpringBootApplication(...)
public class Application {
..................
}
----- entity.java -----------------------------------------------------------------------------------------
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name="DATE_TABLE")
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value={"updatedDate"}, allowGetters=true)
public class OrgEmergency {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@JsonIgnore
private Long id;
@Temporal(TemporalType.TIMESTAMP)
@LastModifiedDate
@Column(name="updated_date")
private Date updatedDate;
}
----------------------------------------------------------------------------------------------
JPA에서
@LastModifiedDate 가 추가되어 있는 경우
db 저장시 날짜 값을 세팅해주지 않아도 자동으로 저장이 된다.
자동으로 작동하지 않을 경우 : 아래 annodation들 추가.
1. Entity 파일
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value={"updatedDate"}, allowGetters=true)
2. Application 파일
@EnableJpaAuditing
----------------------------------------------------------------------------------------------
나의 경우
1. 첫번째 앱에서는 application에 이미 @EnableJpaAuditing 설정되어 있는 앱이었다.
Entity만 추가할 때
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value={"updatedDate"}, allowGetters=true)
를 삭제했더니 자동으로 저장되지 않았었다.
저것만 추가하니 바로 해결되서 저것만으로 돌아가는 줄 알았다.
2. 두번째 앱에서 Entity에 저 어노테이션들을 추가했음에도 불구하고
자동으로 저장되지 않아 찾아봤더니
첫번째 앱에서는 이미 @LastModifiedDate를 사용한 경우가 있어서인지
@EnableJpaAuditing가 Application 파일에 이미 설정되어 있었다.
둘 모두 확인해야
db 데이터의 update 날짜가 자동으로 저장된다.
'IT story > java' 카테고리의 다른 글
[수동 validateor] Annotation validator (0) | 2022.09.26 |
---|---|
[ lambda ] array to list (0) | 2022.02.08 |