1. mysql의 테이블 생성시 테이블의 앞글자가 대문자(model 파일명)로 자동 생성되는 문제 발생
1-1) mysql자체에서 DDL로 테이블을 직접 생성 -> 생성은 되지만 1.에서 생성된 테이블과 데이터가 섞이는 문제 발생(X)
1-2) 전략 변경 -> mysql 테이블 전체 삭제 후 pom.xml -> jpa.hibernat.naming-strategy를 org.hibernate.cfg.EJB3NamingStrategy 로 변경
테이블명이 JAP가 설정하는 테이블명으로 정상적으로 생성됨(해결)
2. 댓글입력시 테이블명이 일치되지 않는 문제 발생
2-1) DTO의 변수명 변경 -> 해결안됨
2-2) Repository에서 설정한 쿼리문 변경 -> ForeignKey문제 발생
Cannot add or update a child row: a foreign key constraint fails
2-2-1) board와 user의 id를 입력하는 foreign키가 문제라고 함 -> repository와 dto에는 문제가 없으므로 view의 jsp를 살펴봄
댓글 생성 버튼을 누르면 발생하는 function과 ajax이다
replySave: function() { let data = { userId: $("#userId").val(), boardId: $("#boardId").val(), content: $("#reply-content").val() } //ajax 데이터 호출이후 정보가 다 지워지므로 이렇게 적어줘야 location.href할때 적용가능함 //url의 boardId와 //let boardId= $("#boardId").val(); $.ajax({ type: "POST", url: `/api/board/${data.boardId}/reply`, data: JSON.stringify(data), contentType: "application/json; charset=utf-8", dataType: "json" }).done(function(resp) { alert("댓글 작성 완료"); location.href = `/board/${data.board_id}`; }) .fail(function(error) { alert(JSON.stringify(error)); }); }, |
ajax자체는 문제가 없다고 판단 -> data의 board_id와 user_id가 reply테이블의 컬럼명과 다른것을 발견함
blog.reply.user_id / blog.reply.board_id
변경
userId -> user_id
boardId -> board_id
변경후 테스트 결과 정상적으로 댓글 생성 및 삭제가 가능함