본문 바로가기

카테고리 없음

[내일배움캠프_Spring] 자바 Spring 최종 프로젝트 _@Column 트러블 슈팅_230303

연관 관계 트러블 슈팅

 

전체 신청내역 조회를 만들어 놓았다.

게시글 별로 리스트를 가져오고 싶기 때문에 postId 를 사용해서 값을 뽑아와야한다.

하지만 postId를 불러오면 column postId가 null이라는 에러가 생성된다.

entity에 @Column 을 사용해서 postId를 주입했더니 위에서 @ManyToOne으로 연관관계를 맺어 준 post의 이름으로 지정해 준 post_id와 겹치는 것 같다. 

 

그래서 @Column postId의 이름을 똑같은 이름으로 지정해주었는데, 이번에는 Duplicated 되었다는 에러가 발생하였다.

 

@Column의 insertable, updatable 속성 값을 false로 변경하여, 에러 해결할 수 있었다.

insertable 속성

  • 엔티티 저장시, 해당 필드도 같이 저장한다. (기본값은 true)
  • false로 설정하면, 이 필드는 DB에 저장하지 않는다.
  • false 옵션은 읽기 전용일 때, 사용한다.

updatable 속성

  • 엔티티 수정시, 해당 필드도 같이 수정한다. (기본값은 true)
  • false로 설정하면, DB에 필드를 수정하지 않는다.
  • false 옵션은 읽기 전용일 때, 사용한다.

아무래도 처음 엔티티를 설계하는 과정에서 잘못 만든 것 같다. 같은 id가 두개가 있는 것은 아무래도 이상하기 때문에 mvc기능들을 다 구현하고 나서 리펙토링을 할 때 고쳐 볼 예정이다.