Member(n) : team(1) 매핑
@Entity @Getter @Setter
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;*/
@ManyToOne
@JoinColumn(name = "TEAM_ID")
private Team team;
}
@JoinColumn의 name 값으로 select 쿼리 나갈때 join해서 나감.
left outer join
Team team1_
on member0_.TEAM_ID=team1_.TEAM_ID
where
member0_.MEMBER_ID=?
이런식으로 내부 쿼리 수행함
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);
// 영속성 컨테스트 말고 직접 쿼리 보고 싶을때 사용
em.flush();
em.clear();
Member findMember = em.find(Member.class, member.getId());
Team findTeam = findMember.getTeam();
System.out.println("findTeam : "+findTeam.getName());
'Java > JPA' 카테고리의 다른 글
@MappedSuperclass (0) | 2023.11.17 |
---|---|
상속관계 테이블 설계 전략 (0) | 2023.11.17 |
연관관계 매핑(양방향) (0) | 2023.11.15 |
JPA 매커니즘 (0) | 2023.11.12 |
JPA 도메인분석설계 @Entity (0) | 2023.11.09 |