
1월 7일 낮부터 구글링을 열심히 하면서 @manytoone @onetomany를 이용하여 연관관계 매핑을 하고있었다.
복합키 설정도 @EmbeddedId <-- 이거 구글링해가며 힘들게 연결하고
양방향 매핑을 하고 서버를 켜보니 서버가 돌아가지 않는다..

디버그를 해도 똑같이 나오고 한참을 코드를 여기저기 만져보며 수정을 했다.
결국 하루종일 문제 해결을 하지 못하고 다음날에도 열심히 구글링을 했다.
그러다가 2시간만에 아래와 같은 글을 발견했다.
(insertable=false는 insert 시점에 막는 기능, updatable는 update 시점에 막는 기능)

@ManyToOne
@JoinColumn(name = "member_id")
private Member member;
원래는 위와 같이 연관관계를 작성하고 있었는데 '제발 실행되어주세요' 하는 심정으로 아래처럼 수정했더니 정상적으로 실행이 되었다.
@ManyToOne
@JoinColumn(name = "member_id", insertable = false, updatable = false)
private Member member;
어제 오늘 이 코드 3줄에 엄청 구글링했는데.. 허무하네
그래도 찾은게 어디야 다행이다....
어찌저찌 운 좋게 해결을 하였으나 사실은
@ManyToOne
@JoinColumn(name = "member_id", insertable = false, updatable = false)
private Member member;
해당 코드 위에
@Column(name = "member_id")
private Long memberId;
이런 코드가 작성되어있었다.
이미 member_id 라는 이름을 가진 칼럼이 있는데, @ManyToOne @JoinColumn(name = "member_id")를 설정해줌으로써 중복되기 때문에 이런 오류가 발생한 것이었다.
이미 작성된 member_id를 제거하거나, JoinColumn 옵션에 insertable, updatable의 값을 false로 주는 방식으로 해결하면 된다고 한다.
나는 이미 작성된 member_id를 제거하는 방식을 선택하였다.
참고사이트
https://milenote.tistory.com/82
https://www.inflearn.com/community/questions/321795/insertable-false-updateable-false?srsltid=AfmBOopzCetb1bYN-0NF3sNZ6h08WMXRyu0ocvrqA5aNVW2bPuzoisFP