Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 웹
- mybatis
- javaspring
- java
- 리액트프로젝트세팅
- 웹앱
- CSS
- 리액트세팅
- 리액트초기세팅
- js
- 자바
- react
- 자바스크립트 기초
- 기초코딩
- 구글 oauth
- 자바스크립트기초
- 전자정부 서버세팅
- Javascript
- 마이바티스
- 구글캘린더api
- 자바스크립트기초문법
- spring
- 처음만나는자바스크립트
- HTML
- Spring Boot
- 자바스크립트
- 스프링부트
- springboot
- 코딩
- 기초 코딩
Archives
- Today
- Total
인생 디벨로퍼
개인정보 insert (form) 본문
728x90
먼저, 테이블 관계를 정리해야했다..
Controller
@PostMapping("/employee/save")
public String save(EmployeeGraduate employeeGraduate, EmployeeCareer employeeCareer,
EmployeeLicense employeeLicense, EmployeeStack employeeStack) {
Employee principal = MySession.MyPrincipal(session);
if (principal == null) {
throw new CustomException("인증이 되지 않았습니다", HttpStatus.UNAUTHORIZED);
}
employeeService.개인정보추가(employeeGraduate, employeeCareer, employeeLicense, employeeStack, principal.getId());
if (employeeCareer.getCareerStart().toString().equals("0001-01-01")) {
employeeCareer.setCareerStart(null);
}
if (employeeCareer.getCareerEnd().toString().equals("0001-01-01")) {
employeeCareer.setCareerEnd(null);
}
return "redirect:/employee/detail";
}
Service
@Transactional
public void 개인정보추가(EmployeeGraduate employeeGraduate, EmployeeCareer employeeCareer,
EmployeeLicense employeeLicense, EmployeeStack employeeStack, int principalId) {
if (employeeGraduate.getSchoolId() != 0) {
int result = employeeGraduateRepository.insert(employeeGraduate, principalId);
if (result != 1) {
throw new CustomException("최종학력 추가 실패", HttpStatus.INTERNAL_SERVER_ERROR);
}
}
if (!employeeCareer.getCareerCompany().equals("") || employeeCareer.getCareerCompany() == null) {
int result2 = employeeCareerRepository.insert(employeeCareer, principalId);
if (result2 != 1) {
throw new CustomException("경력 추가 실패", HttpStatus.INTERNAL_SERVER_ERROR);
}
}
if (employeeLicense.getLicenseId() != 0) {
int result3 = employeeLicenseRepository.insert(employeeLicense, principalId);
if (result3 != 1) {
throw new CustomException("자격증 추가 실패", HttpStatus.INTERNAL_SERVER_ERROR);
}
}
if (employeeStack.getStackId() != 0) {
int result4 = employeeStackRepository.insert(employeeStack, principalId);
if (result4 != 1) {
throw new CustomException("기술스택 추가 실패", HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}
employeeGraduate, employeeCareer, employeeLicense, employeeStack 은 null 값을 허용하기 때문에,
값이 입력되지 않은경우, 공백이 insert 되는 상황이 발생했다.
아무 값도 입력 하지 않을 때, 기본 value 값을 0으로 설정,
Service if 문을 사용해, 0이 아닌 경우에만 insert 가 실행 되도록 하였다.
값을 입력한 경력 부분을 제외하고는, insert 가 실행되지 않는걸 확인!
Repository
각각의 Repository 에 insert 해줘야한다.
.xml
.jsp
결과
728x90
'Project > Mini Project - Rodonin (구인구직)' 카테고리의 다른 글
이력서 리스트 만들기 쿼리 / 절대 간단하지 않은 join (0) | 2023.03.07 |
---|---|
개인정보 뿌리기 (select, inner join) / 가장 간단한 inner join (0) | 2023.03.06 |
개인정보 detail 필수값 뿌리기 (select) (0) | 2023.03.06 |
Ajax를 이용한 update (개인정보 수정) (0) | 2023.02.27 |
date 타입 날짜 받기 (0) | 2023.02.27 |