작성
·
201
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;
...
감사합니다.