티스토리 뷰
728x90
@SQLDelete(sql = "UPDATE USER SET deleted=true where id=?")
soft deletion은 유저의 입장에서는 삭제되어 보이지 않는 값이지만 DB에는 삭제하지 않고 남겨두는 방식이다.
해당 Entity 테이블에 deleted라는 컬럼에 flag와 같이 true, false로 나타내어 구현한다.
JPA에서는 해당 어노테이션이 있으면 delete를 수행하는 대신 update를 통해 flag를 true로 하여 외부로는 보이지 않게 해주어 간단하게 구현할 수 있다.
@SQLDelete(sql = "UPDATE user SET deleted=true WHERE id=?")
@Where(clause = "deleted=false")
매번 deleted=false인 데이터만 가져오는 코드를 짤 수는 없으므로
@Where과 같이 사용하여 deleted=false인 데이터만 가져오게 짜는 것이 좋다
'etc > TIL' 카테고리의 다른 글
@PreAuthorize()로 메서드를 실행하기 전에 권한 검사를 하자 (0) | 2022.04.26 |
---|---|
@Embedded와 @Embeddable을 이용하여 Entity의 가독성을 높이자 (0) | 2022.04.26 |
필드에 생성된 Repository와 Service를 private final로 생성하는 이유 (0) | 2022.04.26 |
@AllArgsConstructor와 @Setter는 최대한 지양하자 (0) | 2022.04.26 |
JPA에서 강제하는 @NoArgsConstructor를 생성할때는 제한을 걸자 (0) | 2022.04.26 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 도커
- ModelAttribute
- IDE
- lunarvim
- RequestPart
- JavaScript
- 아키텍처
- neovim
- Dap
- RequestBody
- 레디스
- RequestParam
- 배포
- vim
- 루나빔
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함