IT story/java

[JPA] @LastModifiedDate 자동 저장 안될 때.

자랑이다 2021. 7. 19. 22:27
728x90
반응형

----- 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 날짜가 자동으로 저장된다.

728x90

'IT story > java' 카테고리의 다른 글

[수동 validateor] Annotation validator  (0) 2022.09.26
[ lambda ] array to list  (0) 2022.02.08