seong
이력서 - 채용공고 상세보기 본문
회사 정보 보기와 거의 동일하다. DB에서 잘 가져오면 뒤는 간단하다
1. DB에서 여러 테이블 join
채용 공고는 어떠한 회사가 있어야 작성이 가능하다, 채용 공고에서 보여지는 회사 정보는 절대 null이 될 수 없다. 그러므로 company와는 outer_join 을 사용했다.
SELECT
jpb.job_posting_board_id,
jpb.company_id,
jpb.job_posting_board_category_id,
jpb.job_posting_board_career_id,
jpb.job_posting_board_title ,
jpb.job_posting_board_content,
jpb.job_posting_salary,
jpb.job_posting_board_place,
jpb.job_posting_board_deadline,
c.category_id,
c.category_frontend,
c.category_backend,
c.category_devops,
cr.one_year_less,
cr.two_year_over,
cr.three_year_over,
cr.five_year_over,
cr.career_id,
cp.company_picture,
cp.company_name,
cp.company_email,
cp.company_phone_number
FROM job_posting_board jpb
LEFT OUTER JOIN company cp
ON jpb.company_id = cp.company_id
INNER JOIN category c
ON jpb.job_posting_board_category_id = c.category_id
INNER JOIN career cr
ON jpb.job_posting_board_career_id = cr.career_id
WHERE jpb.job_posting_board_id = 1;
2. Dto로 받아오기
모든 엔티티를 넣어주었다.
그리고 현재 DB에는 2022 아래 처럼 저장된다.
이력서 관리 사이트에서는 "2022년 11월 13일" 처럼 나와야 하기 때문에 Timestamp를 Service에서 변경해 formatDeadLine으로 받았다.
// 채용공고 상세 보기
public JobPostingBoardDetailDto jobPostingOne(Integer jobPostingBoardId) {
JobPostingBoardDetailDto jobPostingPS = jobPostingBoardDao.findByDetail(jobPostingBoardId);
Timestamp ts = jobPostingPS.getJobPostingBoardDeadline();
Date date = new Date();
date.setTime(ts.getTime());
String formattedDate = new SimpleDateFormat("yyyy년MM월dd일").format(date);
jobPostingPS.setFormatDeadLine(formattedDate);
return jobPostingPS;
}
- Dto
@Getter
@Setter
public class JobPostingBoardDetailDto {
// postingBoard 테이블
private Integer jobPostingBoardId;
private Integer companyId;
private Integer jobPostingBoardCategoryId;
private Integer jobPostingBoardCareerId;
private String jobPostingBoardTitle;
private String jobPostingBoardContent;
private Integer jobPostingSalary;
private String jobPostingBoardPlace;
private String jobPostingBoardPicture;
private Timestamp jobPostingBoardDeadline;
// Category테이블
private Boolean categoryFrontend;
private Boolean categoryBackend;
private Boolean categoryDevops;
// Career테이블
private Boolean oneYearLess;
private Boolean twoYearOver;
private Boolean threeYearOver;
private Boolean fiveYearOver;
// company테이블
private String companyPicture;
private String companyName;
private String companyEmail;
private String companyPhoneNumber;
// company_like 테이블
private Integer companyLikeId;
// TimeStamp > String
private String formatDeadLine;
// ID
private Integer categoryId;
private Integer careerId;
}
'이력관리사이트' 카테고리의 다른 글
이력서 관리 사이트 (RestAPI) - 채용공고 작성하기 (0) | 2022.11.15 |
---|---|
이력서 관리 사이트 - 채용공고 리스트 보기 (0) | 2022.11.14 |
Git 진행 시 파일 대소문자 구분에러 해결 (0) | 2022.10.22 |
채용 공고 수정 기능 (0) | 2022.10.22 |
채용 공고 등록 기능 (0) | 2022.10.22 |