에러 안나게 해주세요
단방향 연관관계 본문
목표
- 객체와 테이블 연관관계의 차이를 이해
- 객체의 참조와 테이블의 외래 키를 매핑
- 용어 이해
>> 방향(Direction) : 단방향 , 양방향
>> 다중성(Multiplicity) : 다대일(N:1),일대다(1:N),일대일(1:1),다대다(N:M) 이해
>> 연관관계의 주인(Owner): 객체 양방향 연관관계는 관리 필요
객체 지향 모델링 (객체 연관관계 사용)
@Entity
public class Member {
@Id
@GeneratedValue
@Column(name = "MEMBER_ID")
private Long id;
@Column(name = "USERNAME")
private String username;
// @Column(name = "TEAM_ID")
// private Long teamId;
//N:1 1대다
@ManyToOne
@JoinColumn (name = "TEAM_ID")
private Team team;
객체 연관관계에서는 클래스 객체를 조인 컬럼으로..
public class JpaMain {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
try {
Team team = new Team();
team.setName("TeamA");
em.persist(team);
Member member = new Member();
member.setUsername("member1");
member.setTeam(team);
em.persist(member);
// 영속성 컨텍스트를 초기화해서 select 쿼리를 보고 싶은 경우 !!
// 쿼리를 디비에 날림
// em.flush();
// 컨텍스트 초기화
// em.clear();
Member findMember = em.find(Member.class, member.getId());
Team findTeam = findMember.getTeam();
System.out.println("findTeam.getName() = " + findTeam.getName());
tx.commit();
} catch (Exception e) {
tx.rollback();
} finally {
em.close();
}
emf.close();
}
}
'Spring > JPA' 카테고리의 다른 글
양방향 연관관계와 연관관계의 주인 (2) - 주의점,정리 (0) | 2021.03.19 |
---|---|
양방향 연관관계와 연관관계의 주인 (0) | 2021.03.19 |
기본 키 매핑 (0) | 2021.03.17 |
엔티티 매핑 (2) (0) | 2021.03.16 |
엔티티 매핑 (1) (0) | 2021.03.16 |