인생 디벨로퍼

개인정보 뿌리기 (select, inner join) / 가장 간단한 inner join 본문

Project/Mini Project - Rodonin (구인구직)

개인정보 뿌리기 (select, inner join) / 가장 간단한 inner join

뫄뫙뫄 2023. 3. 6. 21:50
728x90
반응형


아주 간단한 기능이지만, 테이블 관계 이해가 필수!

https://steponecoding.tistory.com/5

 

개인정보 insert (form)

먼저, 테이블 관계를 정리해야했다.. Controller @PostMapping("/employee/save") public String save(EmployeeGraduate employeeGraduate, EmployeeCareer employeeCareer, EmployeeLicense employeeLicense, EmployeeStack employeeStack) { Employee princip

steponecoding.tistory.com

테이블 구조를 한번 더 숙지하고 오자.


Controller

 @GetMapping("/employee/detail")
    public String detail(Model model) {

        Employee principal = (Employee) session.getAttribute("principal");
        
        if (principal == null) {
          throw new CustomException("인증이 되지 않았습니다", HttpStatus.UNAUTHORIZED);  
        }

        model.addAttribute("empInfo", employeeRepository.findById(principal.getId()));

        List<EmployeeCareer> empCareers = employeeCareerrRepository.findById(principal.getId());
        model.addAttribute("empCareer", empCareers);

        List<GraduateRespDto> empGraduates = employeeGraduateRepository.findById(principal.getId());
        model.addAttribute("empGraduates", empGraduates);

        List<LicenseRespDto> empLicense = employeeLicenseRepository.findById(principal.getId());
        model.addAttribute("empLicense", empLicense);

        List<StackRespDto> empStack = employeeStackRepository.findById(principal.getId());
        model.addAttribute("empStack", empStack);

        List<ResumeListRespDto> resumes = resumeRepository.findByEmpId(principal.getId());
        model.addAttribute("resumes", resumes);

        return "employee/detail";
    }

로그인 된 (principal) id 값으로 데이터를 받아온다.


Repository


.xml

employee_graduate, employee_license, employee_stack

테이블은, 각각의 테이블과 마스터 테이블을 join 해, list를 model 에 담아야한다.



아주 간단한 inner join 쿼리지만, 이를 기본으로 앞으로 매우 복잡해질 예정이다.

이 과정을 4번 반복하면, 개인정보 페이지 완료! 

눈이 매우 아프다

 

728x90
반응형