JPA를 사용할때 객체와 테이블의 연관관계 차이를 아는것이 중요하다
테이블 연관관계에서는 PK, FK를 정해서 매핑하는데 객체에는 연관관계가 없다
그걸 객체지향으로 설정해주는 작업을 해야한다
그 과정에서 단방향 연관관계와 양방향 연관관계 설정을 해주어야 객체지향으로 모델링할 수 있다
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
@Column(name = "USERNAME")
private String name;
private int age;
// @Column(name = "TEAM_ID")
// private Long teamId;
@ManyToOne
@JoinColumn(name = "TEAM_ID")
private Team team;
위와 같이 ManyToOne은 여러개의 Member : Team 을 n : 1 로 매핑할 수 있고
JoinColumn을 사용하면 FK 값을 사용할 수 있다
//팀 저장
Team team = new Team();
team.setName("TeamA");
em.persist(team);
//회원 저장
Member member = new Member();
member.setName("member1");
member.setTeam(team); //단방향 연관관계 설정, 참조 저장
em.persist(member)
위와같이 설정된 모델링을 READ하려면 다음과 같이 사용하면 된다
//조회
Member findMember = em.find(Member.class, member.getId());
//참조를 사용해서 연관관계 조회
Team findTeam = findMember.getTeam();
이 글은 김영한님의 JPA강의를 공부한 글입니다
'프레임워크 > JPA' 카테고리의 다른 글
[JPA] 일대다( 1:N) 연관관계 (0) | 2022.03.17 |
---|---|
[JPA] 객체지향에서의 양방향 설정 (0) | 2022.03.16 |
[JPA] 엔티티와 매핑 (0) | 2022.03.14 |
[JPA] 필드와 컬럼 매핑 (0) | 2022.03.14 |
[JPA] JPQL (Java Persistence Query Language)이란? (0) | 2022.02.25 |
댓글