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

'인사 등록이 필요한 직원'을 클릭(click 이벤트)하면 동적으로 우측 '인사 정보 등록'으로 이동하여 해당 항목에 맞게 작성된다.
코드 : (thymeleaf 문법으로 값 꺼내서 넣어주기)


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

(기본적인 사번 / 이름 / 이메일은 employee 테이블 , 부서는 department 테이블의 fk로 받음)
인사 쪽 추가할 테이블은 직책 / 고용 여부 / 주소 / 국적 / 대표 전화 / 입사 일자 (human_resource 테이블)이다.
여기서 등록을 누르면 ~~님 등록 완료 되었습니다. 라는 모달 창이 떠야 하는데 500 에러가 발생했다.
(지금은 다 고쳐서 사진은 없다...)

insert 는 성공 시 1 반환, 실패 시 0 반환이므로 service 단에서 삼항 연산자로 1만 return되게 설정.
insert 성공 시 리다이렉트로 성공 메시지(모달) 띄우는 과정이다.

성공하면 커밋 , 실패시 롤백 되는 @Transactional 어노테이션을 달았다.
기본적인 코드는 여기까지 적고.... 일단 에러 메시지가 외래키 제약조건 위반 이라고 돼있었다.
employee 테이블에 employee_no가 없는 상태에서 human_resoure에 추가하려고 하니, 위반이라는 것이다.
(계속 찾아본 결과 그렇다더라)
근데 해결하고 보니, 정말 바보같지만 바보같은 원인이었다.
결국은 human_resource에 데이터가 있는데 insert를 박으려고 하니... 저런 에러가 났던 것...
근데 human 쪽에 기본적인 데이터는 지우고 지금까지 문제없이 인서트 됐었다..
하지만 요즘 정신없이 달리기도 했고 테스트 한답시고 db를 드랍, 추가도 몇 번 하고,
다른 팀원의 머지도 여러번 하기도 하고.... 여러모로 머리가 안 돌아갔나보다...


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

무튼 이번에도 바보같은 실수를 반복하지 않기위해 기록용으로 남긴다.
'Language > Java' 카테고리의 다른 글
| Spring / thymeleaf / session 사용하기 (0) | 2024.12.31 |
|---|---|
| spring / fullcalendar 중복 데이터 / db 쿼리 수정하기 (0) | 2024.12.27 |
| 스프링 / 인사 조회 및 수정 / xml 쿼리문 에러 수정 (0) | 2024.12.15 |
| 웹 요청 처리 Forward와 Redirect 에러 파악하기 (0) | 2024.11.25 |
| java - NullPointerException (target is null for method equals) (2) | 2024.10.15 |