[개발] 🚨ERROR - org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException:
한이음 프로젝트 Review의 CRUD를 만드는 과정 중....
(오류잡느라 빠바서 오류 메세지를 직접 캡쳐하지는 못함)
🛤️현상 :
org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "CONSTRAINT_C3: PUBLIC.REVIEW_TB FOREIGN KEY(SCHOOLID) REFERENCES PUBLIC.SCHOOL_TB(ID) (CAST(1 AS BIGINT))"; SQL statement:
insert into review_TB (id, author, cafeteriaRate, content, educationRate, employmentRate, facilityRate, schoolId, tags, trafficRate) values (default, ?, ?, ?, ?, ?, ?, ?, ?, ?) [23506-214]
⭐원인 :
[이 오류는 Review 테이블의 schoolId 컬럼이 School 테이블의 id 컬럼을 참조하도록 설정되어 있으나, Review 테이블에 존재하지 않는 School id가 삽입되었기 때문에 발생하는 것입니다.] 라고 GPT가 말했다.
이 원인 메세지대로 review테이블은 school테이블의 id를 참조(외래키)하고 있었는데 그 school테이블에 아무 데이터도 들어있지 않아서참조할 id값이 없기 때문에 review테이블의 정보도 들어가지 않았다.
🗝️해결 :
Review 테이블의 schoolId 컬럼에 존재하는 School 테이블의 id만 입력하십시오. Review를 생성할 때 schoolId로 유효한 School id 값을 제공해야 합니다. Review를 생성하기 전에 School 테이블에 해당 id가 존재하는지 확인하고, 유효한 id 값을 사용하십시오.
그래서 실제로 school테이블에 insert문으로 값을 넣어주니 review 테이블에도 성공적으로 insert가 되었다.
