<aside> <img src="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" alt="https://raw.githubusercontent.com/eirikmadland/notion-icons/master/v5/icon3/ul-github.svg" width="40px" /> ์ฐธ์กฐ Github Code
</aside>
RetiredDeveloper
Entity ๊ตฌํ@Setter
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@EntityListeners(AuditingEntityListener.class)
public class RetiredDeveloper {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected Long id;
private String memberId;
private String name;
@CreatedDate
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime updatedAt;
}
Developer
Entity ์ํ๊ฐ(StatusCode ์ถ๊ฐ)@Enumerated(EnumType.STRING)
private StatusCode statusCode;
Developer developer = Developer.builder()
.developerLevel(request.getDeveloperLevel())
.developerSkillType(request.getDeveloperSkillType())
.experienceYear(request.getExperienceYears())
.memberId(request.getMemberId())
.statusCode(EMPLOYED)
.name(request.getName())
.age(request.getAge())
.build();
DMakerController
์ deleteDeveloper
๋ฉ์๋ ๊ตฌํ@DeleteMapping("/developer/{memberId}")
public DeveloperDetailDto deleteDeveloper(
@PathVariable String memberId
) {
log.info("Delete /deleteDeveloper HTTP/1.1 ");
return dmakerService.deleteDeveloper(memberId);
}
DMakerService
์ deleteDeveloper
๋ฉ์๋ ๊ตฌํ@Transactional
public DeveloperDetailDto deleteDeveloper(String memberId) {
// 1. EMPLOYED -> RETIRED
Developer developer = developerRepository.findByMemberId(memberId)
.orElseThrow(() -> new DMakerException(NO_DEVELOPER));
developer.setStatusCode(RETIRED);
// 2. save into retiredDeveloper
RetiredDeveloper retiredDeveloper = RetiredDeveloper.builder()
.memberId(developer.getMemberId())
.name(developer.getName())
.build();
retiredDeveloperRepository.save(retiredDeveloper);
return DeveloperDetailDto.fromEntity(developer);
}
RetiredDeveloperRepository
์ธํฐํ์ด์ค ๊ตฌํ@Repository
public interface RetiredDeveloperRepository extends JpaRepository<RetiredDeveloper, Long> {
}
getAllDevelopers
์์ ํ์