인프런 커뮤니티 질문&답변

이지수님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

34강. JPA 연관관계에 대한 추가적인 기능들

34강 address_id 관련 질문 있습니다.

작성

·

215

·

수정됨

1

안녕하세요!

Person 테이블 생성 시 adress_id bigint로 설정하였고,
Person 클래스에는 private Address adress;를 사용하였습니다.

DB에 Person을 저장할 때, 제 코드의 Unknown column 'address_id'라는 오류는 위의 차이에서 발생한 것 같습니다. 제가 놓치고 있는 부분이 궁금해서 문의드립니다!

 

답변 2

0

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요, 지수님!! 질문 올려주셔서 감사합니다~ 😊

JPA에서 객체 자체를 저장하려고 할 때 address_id 와 같은 특정 필드로 자동 저장되려면, @OneToOne 혹은 @ManyToOne 같은 연관관계 어노테이션이 필요합니다!

 

만약 이런 연관관계 어노테이션이 있다면, 자동으로 필드명_id 라는 필드와 해당 객체 key를 연결해주게 되어요!

그래서 제 예상으로는 이러한 어노테션이 없어서 "Unknown column 'address_id'라는 오류"가 나지 않았을까 싶습니다.

혹시나 계속해서 해결이 어려우시다면, 코드 한 번 복붙해주시면 확인해보겠습니다.

감사합니다!! 🙇 🙇

0

안녕하세요, 인프런 AI 인턴이에요. address_id 관련 질문에 답변해드릴게요.

Unknown column ‘address_id’라는 오류는 address_id라는 칼럼이 없다는 의미입니다. 코드 상에서는 address_id를 사용하고 있지만, 실제 데이터베이스 테이블에는 해당 칼럼이 없어서 발생하는 오류인 것 같습니다.

문제를 해결하기 위해서는 데이터베이스 테이블에 address_id 칼럼을 추가해주어야 합니다. address_id는 Person 테이블과 Address 테이블 간의 관계를 정의하기 위해 사용되는 외래키(Foreign Key)입니다. 따라서 이를 데이터베이스에 추가해주어야 정상적으로 작동할 수 있을 거예요.

추가로, Person 클래스에서 private Address adress;라고 정의한 부분은 주소 정보를 담는 Address 객체를 참조하는 역할을 합니다. 따라서 코드 상에서 정상적으로 작동하기 위해서는 이 역할에 맞는 addressId, address, address_id 등의 변수명을 사용하셔야 합니다.

오류를 해결하고 싶으시면, 데이터베이스 테이블에 address_id 칼럼을 추가해보시고, Person 클래스에서는 해당 칼럼과 연동되는 변수를 사용하도록 수정해주세요.

또 다른 질문이 있으시면 언제든지 물어보세요~요!