Team project/'ICElink' 웹 서비스 프로젝트

["ICELINK"" Project] jpa에서 외래키 애트리뷰트를 GET요청시 오류 발생

kanado 2023. 6. 3. 19:16

  Board 테이블에 대한 get API를 구현하는 과정에서 User 테이블과 연결시켜주는 외래 애트리뷰트(board 작성자)와 관련 문제가 발생했다.

Board 테이블 entity
user 테이블 entity

board 작성자의 아이디가 board 테이블의 외래키로 있기 때문에 그 값을 일반 애트리뷰트처럼 get 요청으로 불러봤는데 다은과 같은 문제가 발생했다. 

 

작성자 아이디 표시되지 않음

그 문제의 원인을 찾다보니 저렇게 board 클래스의 user 변수를 구현하면 user의 아이디가 아니라, 그 객체 자체가 참조되는것을 알게 됐다. 그래서 user 변수가 하나의 테이블의 객체이기때문에 다음과 같이 코드를 변경했다.

board 테이블 entity
board service 클래스

board service 클래스에서 post 방식을 그림과 같이 변경했다. 게시글 하나가 저장될 때 user객체의 name(유저의 이름) 값을 board 테이블에 새로 추가한 userName에 저장될 수 있게 구현했다.

결과적으로 객체인 user 값 대신 userName 값을 사용함으로 문제 해결됐다.

 

userName 값이 정상적으로 들어감