Java/JPA
연관관계 매핑(단방향)
amungstudy
2023. 11. 15. 12:10
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());