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

달린다님의 프로필 이미지
달린다

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

게시물 관리를 위한 Post Entity 추가와 초기 데이터 생성

유저 정보를 어떻게 유저 아이디만 넣고도 알게 되나요?

작성

·

204

0

- jpa에서는 Post.java에서 User.java를 참조하도록 구성

- DB에서는 Post table에서 USER_ID 컬럼만 알면 되도록 구성이 됩니다.    

POST table에서 어떻게 User를 받을까 궁금하였는데 USER_ID만 그것도 자동으로 받을 수 있었습니다. 어떻게 이런 일이 일어나는지 궁금합니다.

답변 1

1

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

JPA에서는 JDBC를 사용해서 직접 SQL를 조작할 때 외래키로 참조하는 것이 아니라, 엔티티 객체 자체를 통째로 참고하게 됩니다. 참조관계는 양방향과 단방향이 있으며, 두 엔티티 사이에서 한쪽의 엔티티만 참조할 때는 단방향으로 지정하면 됩니다. 관계설정에 중요한 또한가지는 다중성인데, 다중성은 Man To One(N:1), One to Many(1:N), One to One(1:1), Many to Many (N:M)으로 선택하게 됩니다. 

따라서, 질문하신 내용 중 User와 Post의 관계에서는 User:Post를 1:N으로 매핑하고 있으며, User 객체에서 Post 객체 자체를 참조하고 있다고 보시면 될 것 같습니다. 

@Entity
@Table(name = "users")
public class User {
...
    @OneToMany(mappedBy = "user")
private List<Post> posts;

...

감사합니다. 

달린다님의 프로필 이미지
달린다

작성한 질문수

질문하기