File tree Expand file tree Collapse file tree
src/main/java/bitnagil/bitnagil_backend
recommendedRoutine/domain Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1010import lombok .Builder ;
1111import lombok .Getter ;
1212import lombok .NoArgsConstructor ;
13+ import org .hibernate .annotations .SQLDelete ;
14+ import org .hibernate .annotations .Where ;
1315
1416import java .time .LocalDate ;
1517import java .time .LocalDateTime ;
16- import java .util .UUID ;
1718
1819@ Getter
1920@ NoArgsConstructor (access = AccessLevel .PROTECTED )
2021@ Entity
22+ @ SQLDelete (sql = "UPDATE emotion_marble SET deleted_at = NOW() WHERE emotion_marble_id = ?" )
23+ @ Where (clause = "deleted_at IS NULL" )
2124public class EmotionMarble extends BaseTimeEntity {
2225
2326 @ EmbeddedId
Original file line number Diff line number Diff line change 66import lombok .Builder ;
77import lombok .Getter ;
88import lombok .NoArgsConstructor ;
9+ import org .hibernate .annotations .SQLDelete ;
10+ import org .hibernate .annotations .Where ;
911
1012@ Getter
1113@ NoArgsConstructor (access = AccessLevel .PROTECTED )
1214@ Entity
1315@ Table (name = "routine_case" ) // 이렇게 예약어 회피
16+ @ SQLDelete (sql = "UPDATE routine_case SET deleted_at = NOW() WHERE case_id = ?" )
17+ @ Where (clause = "deleted_at IS NULL" )
1418public class Case extends BaseTimeEntity {
1519
1620 @ Id
1721 @ GeneratedValue (strategy = GenerationType .IDENTITY )
1822 private Long caseId ;
1923
2024 @ Builder
21- public Case (Long caseId , String caseName ) {
25+ public Case (Long caseId ) {
2226 this .caseId = caseId ;
2327 }
2428}
Original file line number Diff line number Diff line change 77import lombok .AccessLevel ;
88import lombok .Getter ;
99import lombok .NoArgsConstructor ;
10+ import org .hibernate .annotations .SQLDelete ;
11+ import org .hibernate .annotations .Where ;
1012
1113import java .time .LocalTime ;
1214
1315@ Getter
1416@ NoArgsConstructor (access = AccessLevel .PROTECTED )
1517@ Entity
18+ @ SQLDelete (sql = "UPDATE onboarding SET deleted_at = NOW() WHERE onboarding_id = ?" )
19+ @ Where (clause = "deleted_at IS NULL" )
1620public class Onboarding extends BaseTimeEntity {
1721
1822 @ Id
Original file line number Diff line number Diff line change 99import lombok .AccessLevel ;
1010import lombok .Getter ;
1111import lombok .NoArgsConstructor ;
12+ import org .hibernate .annotations .SQLDelete ;
13+ import org .hibernate .annotations .Where ;
1214
1315import java .time .LocalTime ;
1416
1517@ Getter
1618@ NoArgsConstructor (access = AccessLevel .PROTECTED )
1719@ Entity
20+ @ SQLDelete (sql = "UPDATE recommended_routine SET deleted_at = NOW() WHERE recommended_routine_id = ?" )
21+ @ Where (clause = "deleted_at IS NULL" )
1822public class RecommendedRoutine extends BaseTimeEntity {
1923
2024 @ Id
Original file line number Diff line number Diff line change 55import lombok .AccessLevel ;
66import lombok .Getter ;
77import lombok .NoArgsConstructor ;
8+ import org .hibernate .annotations .SQLDelete ;
9+ import org .hibernate .annotations .Where ;
810
911@ Getter
1012@ NoArgsConstructor (access = AccessLevel .PROTECTED )
1113@ Entity
14+ @ SQLDelete (sql = "UPDATE recommended_sub_routine SET deleted_at = NOW() WHERE recommended_sub_routine_id = ?" )
15+ @ Where (clause = "deleted_at IS NULL" )
1216public class RecommendedSubRoutine extends BaseTimeEntity {
1317
1418 @ Id
Original file line number Diff line number Diff line change 2020import lombok .Builder ;
2121import lombok .Getter ;
2222import lombok .NoArgsConstructor ;
23+ import org .hibernate .annotations .SQLDelete ;
24+ import org .hibernate .annotations .Where ;
2325
2426/**
2527 * 추후 v2를 대비한 루틴에 대한 정보를 관리하는 엔티티 클래스입니다.
2628 */
2729@ Getter
2830@ NoArgsConstructor (access = AccessLevel .PROTECTED )
2931@ Entity
32+ @ SQLDelete (sql = "UPDATE routine_info_v2 SET deleted_at = NOW() WHERE routine_info_id = ?" )
33+ @ Where (clause = "deleted_at IS NULL" )
3034public class RoutineInfoV2 {
3135 @ Id
3236 @ GeneratedValue (strategy = GenerationType .IDENTITY )
Original file line number Diff line number Diff line change 1919import lombok .Builder ;
2020import lombok .Getter ;
2121import lombok .NoArgsConstructor ;
22+ import org .hibernate .annotations .SQLDelete ;
23+ import org .hibernate .annotations .Where ;
2224
2325/**
2426 * 추후 v2를 대비한 일자별 루틴을 관리하는 엔티티 클래스입니다.
2527 */
2628@ Getter
2729@ NoArgsConstructor (access = AccessLevel .PROTECTED )
2830@ Entity
31+ @ SQLDelete (sql = "UPDATE routine_v2 SET deleted_at = NOW() WHERE routine_id = ?" )
32+ @ Where (clause = "deleted_at IS NULL" )
2933public class RoutineV2 {
3034 @ Id
3135 @ GeneratedValue (strategy = GenerationType .IDENTITY )
Original file line number Diff line number Diff line change 11package bitnagil .bitnagil_backend .user .domain ;
22
3- import java .time .LocalDateTime ;
4-
53import bitnagil .bitnagil_backend .enums .Role ;
64import bitnagil .bitnagil_backend .enums .SocialType ;
75import bitnagil .bitnagil_backend .global .entity .BaseTimeEntity ;
8- import bitnagil .bitnagil_backend .global .entity .HistoryPk ;
96import bitnagil .bitnagil_backend .onboarding .domain .Onboarding ;
107import jakarta .persistence .*;
11- import jakarta .validation .constraints .NotNull ;
128import lombok .AccessLevel ;
139import lombok .Builder ;
1410import lombok .Getter ;
1511import lombok .NoArgsConstructor ;
12+ import org .hibernate .annotations .SQLDelete ;
13+ import org .hibernate .annotations .Where ;
1614
1715/**
1816 * 소셜 인증을 통해 가입한 사용자의 정보를 저장하는 JPA 엔티티 클래스입니다.
2119@ Getter
2220@ NoArgsConstructor (access = AccessLevel .PROTECTED )
2321@ Entity
22+ @ SQLDelete (sql = "UPDATE user SET role = 'WITHDRAWN', deleted_at = NOW() WHERE user_id = ?" )
23+ @ Where (clause = "deleted_at IS NULL" )
2424public class User extends BaseTimeEntity {
2525
2626 @ Id
@@ -75,6 +75,7 @@ public void updateOnboarding(Onboarding onboarding) {
7575 this .onboarding = onboarding ;
7676 }
7777
78+ // todo: 운영 반영 후 이슈가 없으면 제거
7879 public void changeRoleToWithdrawn () {
7980 this .role = Role .WITHDRAWN ;
8081 }
Original file line number Diff line number Diff line change @@ -88,14 +88,13 @@ public void logout(User user) {
8888 // 회원탈퇴 - 회원 관련 정보 삭제 및 소셜과 연결 끊기
8989 @ Transactional
9090 public void withdrawal (User user ) {
91- LocalDateTime now = LocalDateTime .now ();
92-
9391 // 변경 감지를 위해 영속 상태로 설정
9492 User persistedUser = userManager .getPersistedUser (user );
9593
9694 invalidateToken (persistedUser );
9795
98- persistedUser .changeRoleToWithdrawn ();
96+ // 회원 삭제 (delete() 호출 시 @SQLDelete 어노테이션에 의해 role은 WITHDRAWN로 deleted_at은 NOW()로 변경됨)
97+ userRepository .delete (user );
9998
10099 unlinkFromSocial (persistedUser );
101100 }
You can’t perform that action at this time.
0 commit comments