🤔아래와 같은 BaseEntity를 상속 받아서 사용하던중 테스트를 위해 modifyDate
를 수정해야 할 일이 생겼다.
@MappedSuperclass
@Getter
@SuperBuilder
@NoArgsConstructor
@EntityListeners(AuditingEntityListener.class)
@ToString
public abstract class BaseEntity {
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;
@CreatedDate
private LocalDateTime createDate;
@LastModifiedDate
private LocalDateTime modifyDate;
}
처음에는 changeMethod를 만들어서 실행하였다.
void changeModifyDate(LocalDateTime modifyDate){
this.modifyDate = modifyDate;
그러나 실제 실행해보면 값이 바뀌지 않았는데 이는 값을 수정을 하게 되면 modifydate
로 인해 값이 현재 값으로 변경 되기 때문이다. 이를 해결 하기 위해 직접 update
쿼리를 날려 해결 하였다
@Query("update Person set p.modifyDate =:newDate")