티스토리 뷰
반응형
이벤트 | 실행시점 | 설명 |
@PrePersist | 엔티티가 생성될 때 | 엔티티가 생성될 때마다 실행되어야 하는 로직을 구현하는 데 사용됩니다. 예를 들어, 엔티티가 생성될 때마다 현재 날짜를 값으로 설정하는 로직을 구현할 수 있습니다. |
@PreUpdate | 엔티티가 업데이트 될 때 | 엔티티가 업데이트될 때마다 실행되어야 하는 로직을 구현하는 데 사용됩니다. 예를 들어, 엔티티가 업데이트될 때마다 변경된 값을 기록하는 로직을 구현할 수 있습니다. |
특정값을 변경했을 때 변경일을 등록하는 부분을 작성할일 있었는데
나는 @PrePersist 가 Insert, Update 시에 동일하게 작동한다고 생각하고 코드를 작성했는데
Update 테스트를 아무리해도 적용이 되질 않아...
혹시 엔티티가 생성될 때만 되나하고 Insert 구문을 수행하니 적용되는 것을 보고
내가 잘못 인지했음을 깨닫고 @PreUpdate 어노테이션을 찾아 비교하게 되었다.
@PreUpdate
public void onPreUpdate() {
if(this.resultType.equals("Y") && (this.resultDate == null || this.resultDate.isEmpty()) ) {
this.resultDate = LocalDate.now().toString();
}
}
resultType 값이 "Y" 로 변경되고 resultDate 값이 없을 경우에만 resultDate 값을 현재 날짜를 넣어주게 해줬다.
글을 잘못 읽으면 이런 불상사에 빠진다.
반응형
'Java > JPA, QueryDSL' 카테고리의 다른 글
[QueryDSL] 다중 Datasource 설정하기 (feat.@Qualifier 사용) (0) | 2023.11.13 |
---|---|
[JPA] LocalContainerEntityManagerFactoryBean의 setJpaPropertyMap을 설정할 때 사용할 수 있는 key 값 목록 (0) | 2023.10.24 |
[QueryDSL] Q클래스 생성 및 설정. -종결- (feat.intelliJ) (2) | 2023.08.23 |
[QueryDSL] Q클래스 import 불가 오류해결 / generated 폴더관련 문제. (feat.IntelliJ) (0) | 2023.07.28 |
[QueryDSL] Q클래스, cannot find symbol error (feat.intelliJ) (0) | 2023.05.15 |
댓글