2017-12-29 88 views
0

내 Entity 클래스에는 dateCreated 및 dateUpdated와 같은 필드가 있습니다. 이 필드를 자동으로 업데이트하기 위해 @PreUpdate를 사용하여 @PrePersist 및 dateUpdated 필드와 함께 dateCreated 필드에 주석을 추가했습니다. 그것은 나를 위해 일했습니다. 새 엔터티를 만들 때 dateCreated 필드는 업데이트되지만 엔터티를 업데이트하는 동안 dateCreated 필드는 null이되고 dateUpdated 필드는 업데이트됩니다. 아무도 왜 이것이 일어나고 있는지 말할 수 있습니까?@PrePersist 및 @PreUpdate를 사용하는 동안 만든 날짜 필드가 업데이트시 null이됩니다.

내가 그들을 아래의 방법을 일으킬 최대 절전 모드 4.3.6 버전 및 JPA 2.0

+0

당신이 몇 가지 코드를 보여 주시겠습니까 : 위의

@PrePersist protected void onCreation() { dateCreated = Instant.now(); dateUpdated = Instant.now(); } @PreUpdate protected void onUpdate() { dateUpdated = Instant.now(); } 

는 java.Instant를 사용하고 있지만 java.Date를 사용하는 경우 다음 아래 사용할 수 있다고 가정? –

답변

0

아래의 주석을 (@PrePersist, @PreUpdate) 사용하고는 동기화이 필드를 유지하는 데이터베이스 삽입 또는 업데이트하기 전에 호출되는 . 나는 그들을 BaseEntity에 놓은 다음, 모든 엔티티에 BaseEntity를 확장합니다.

@PrePersist 
protected void onCreation() 
{ 
    dateCreated = new Date(); 
    dateUpdated = new Date(); 
} 

@PreUpdate 
protected void onUpdate() 
{ 
    dateUpdated = new Date(); 
}