본문 바로가기
Language/Java

Spring / thymeleaf / 인사 등록 / 에러 일기

by 쿠키오빠 2024. 12. 18.
반응형

 

프로젝트 진행 중 잘 되던 인사 등록에 문제가 생겼다.

 

 

'인사 등록이 필요한 직원'을 클릭(click 이벤트)하면 동적으로 우측 '인사 정보 등록'으로 이동하여 해당 항목에 맞게 작성된다.

코드 : (thymeleaf 문법으로 값 꺼내서 넣어주기)

해당 열의 getAttribute로 꺼내주고 변수에 담고, id 요소 추출한 값에 다시 담기!!

 

 

(기본적인 사번 / 이름 / 이메일은 employee 테이블 , 부서는 department 테이블의 fk로 받음)

 

인사 쪽 추가할 테이블은 직책 / 고용 여부 / 주소 / 국적 / 대표 전화 / 입사 일자 (human_resource 테이블)이다.

 

여기서 등록을 누르면 ~~님 등록 완료 되었습니다. 라는 모달 창이 떠야 하는데 500 에러가 발생했다.

(지금은 다 고쳐서 사진은 없다...)

 

Controller

insert 는 성공 시 1 반환, 실패 시 0 반환이므로 service 단에서 삼항 연산자로 1만 return되게 설정.

insert 성공 시 리다이렉트로 성공 메시지(모달) 띄우는 과정이다.

 

Service

성공하면 커밋 , 실패시 롤백 되는 @Transactional 어노테이션을 달았다.


기본적인 코드는 여기까지 적고.... 일단 에러 메시지가 외래키 제약조건 위반 이라고 돼있었다.

 

employee 테이블에 employee_no가 없는 상태에서 human_resoure에 추가하려고 하니, 위반이라는 것이다.

(계속 찾아본 결과 그렇다더라)

 

근데 해결하고 보니, 정말 바보같지만 바보같은 원인이었다.

 

결국은 human_resource에 데이터가 있는데 insert를 박으려고 하니... 저런 에러가 났던 것...

 

근데 human 쪽에 기본적인 데이터는 지우고 지금까지 문제없이 인서트 됐었다..

 

하지만 요즘 정신없이 달리기도 했고 테스트 한답시고 db를 드랍, 추가도 몇 번 하고, 

다른 팀원의 머지도 여러번 하기도 하고.... 여러모로 머리가 안 돌아갔나보다...

 

등록 필요한 애들 보여주기
인사 등록~

truncate로 데이터를 다 날리고 인서트하니 당연히  잘 된다......

 

무튼 이번에도 바보같은 실수를 반복하지 않기위해 기록용으로 남긴다.

반응형