• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

21.07.29 17:50 작성 조회수 128

0

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

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

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

답변 1

답변을 작성해보세요.

1

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

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;

...

감사합니다.