개요
중간 프로젝트를 하면서 고민했던 부분들입니다. 주된 고민은
User의 상속을 다시 살려서, 시도해보려고 했을 때 장점과 단점
카테고리(판매자가 파는 상품의 카테고리, 판매자가 가지고 있어야함) 구현에 OneToMany로 카테고리 테이블을 참조해도 될 것인가?(List로 뽑기 위해)
- 카테고리 만들기 ( 효근님)
Seller가 가지고 있는 것임. String 으로 합시다…판매자 정보에 들어가야 합니다 필드에 있습니다.
- A-Z 상속 구현법. (동균)
- ( 두영님 ) promote 에 @ManyToOne 으로 User를 참조 할 수 있게 하면 됩니다. 저장 로직(서비스부분) 의 변경이 있을 수 있습니다. (+ DTO 등등도 변경 가능성 있음)
- 추가적으로, promote 엔티티 필드에 boolean 이나 Long 으로 이 사람의 승인신청이 완료되었는지 여부를 확인하는 필드가 필요합니다.
- ( 영민님 ) 제일 어려운데, 음…순서가 이렇습니다.
- 우리가 ADMIN Service에 만들어야 하는 로직은, 한 매서드 안에서 이루어져야 합니다.
- 로직의 실제 내용은 다음 과정을 통해 이루어 집니다.
- promote 객체에서 User의 정보를 가져와서(promoteRepository), 새로운 Seller 객체를 만들고, repository에 Save 합니다.
- 그 후 promote를 신청한 user를 userRepository에서 찾아서, 삭제합니다.
- 꼭 꼭 한 트랜잭션, 즉 한 매서드 안에서 위의 것들이 실행되어야 합니다.
- ( 지은님 )User → Promote → Seller 가는 그림인데, User의 안전한 삭제와 Seller의 안전한 생성을 위해 Promote가 삭제되는 시점을 늦춰야 함. 그러므로, 이 @Scheduled를 하는거임. 바로 삭제되지 말라고.
- promote 엔티티 내에서, 승인이 완료된 사람을 찾아 낼 로직이 필요합니다. 이 기준으로, 이미 처리가 완료 된 promote 객체를 모두 찾아내 삭제하는 로직으로 만들어 주세요.