jpa 2

[JPA] Soft Delete와 @SQLDelete

데이터베이스에서 데이터를 삭제할 때 정책에 따라 Hard Delete와 Soft Delete로 나눌 수 있다. Hard Delete는 물리 삭제, Soft Delete는 논리 삭제로도 부른다. 물리 삭제는 데이터베이스 상에서 완전히 제거하는 것이고, 논리 삭제는 데이터를 남겨두되 컬럼을 별도로 만들어서 삭제 여부를 확인하는 것이다. 보통 삭제일시 컬럼의 null 여부 또는 삭제여부 컬럼의 true와 false 값을 확인한다. 논리 삭제의 경우에는 데이터를 삭제하지 않으므로 결과적으로는 특정 컬럼을 update 한다. 이때 @SQLDelete 라는 어노테이션을 유용하게 사용할 수 있다. 이 어노테이션은 데이터를 삭제하는 로직을 작성하면, 데이터를 삭제하는 대신에 미리 설정한 특정 컬럼의 값을 변경해준다. ..

DB/JDBC & JPA 2024.01.31

[JPA] @CreatedDate와 @LastModifiedDate

어떤 정보를 관리할 때 데이터의 생성된 날짜와 수정된 날짜를 저장해야되는 경우도 있다. 일일이 저장할 수도 있겠지만, 이 어노테이션을 이용하면 별도의 코드 없이도 자동으로 저장하게 할 수 있다. @CreatedDate는 데이터의 생성일을, @LastModifiedDate는 데이터의 마지막 수정일을 저장한다. 이 어노테이션들은 다음과 같이 사용할 수 있다. import jakarta.persistence.Entity; import jakarta.persistence.EntityListeners; import java.time.LocalDateTime; import org.springframework.data.annotation.CreatedDate; import org.springframework.data..

DB/JDBC & JPA 2024.01.29