JPA 2

spring boot jpa : soft delete 구현 (delete 후 데이터 복원)

데이터를 삭제할 때 DB에서 완전히 삭제되는 방식은 사실 프로젝트를 운영해 나갈 때 좋은 방식이 아니다. 누군가 데이터를 실수로 삭제했을 때 복구하려면 DB에 어떤 방식이든 데이터를 남겨둬야 했다. 그렇기에 데이터를 복구하는 방법을 찾아보니, soft delete라는 방식을 통해 데이터 삭제를 하는 방법이 있었다. soft delete란? 데이터를 삭제할 때 두 가지 방식 중 하나다. hard delete, soft delete가 있다. hard delete : 실제로 db에 delete쿼리를 날려 데이터를 삭제하는 것. soft delete : 실제로 삭제하는 것이 아니라, 테이블에 deleted_check 같은 필드를 추가해서 그 데이터가 삭제처리 되면 삭제가 아니라 deleted_check만 바꿔주..

Backend/spring boot 2023.09.06

spring boot jpa : hibernate delete 쿼리가 실행되지 않는 현상

프로젝트를 하면서, 게시글이나 유저 정보를 delete해야 하는 경우가 있었다. delete 자체는 jpa를 이용하면 간단하게 구현했었고 테스트도 항상 통과했었는데, 문제가 생겼다. 다음은 게시글 삭제를 위한 boardService의 deleteBoard 메서드이다. @Override @Transactional // @PreAuthorize("hasAuthority('ADMIN') or #board.author.username == authentication.principal.username") //hasAuthority를 사용해야 함.여기서 hasRole은 단지 문자열 비교로 public void deleteBoard(Long id, HttpServletRequest request) { //권한을 확인..

Backend/spring boot 2023.08.31