[자바 ORM 표준 JPA 프로그래밍] 연관관계 매핑 기초 - 단방향 연관관계 ( 1/3 )
- 목표
- 객체와 테이블 연관관계의 차이를 이해
- 객체의 참조와 테이블의 외래 키를 매핑
※ 인프런 또는 유투브 강의를 보고 진행하는 것을 추천합니다. 이전 소스와 구분 가능하도록 주석 및 파일을 분리 했으나 보기 힘들 수 있습니다.
- 객체를 테이블에 맞추어 데이터 중심으로 모델링할 경우, 협력 관계를 만들 수 없다.
- 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다.
SELECT * FROM MEMBERRELATION M JOIN TEAM T ON M.TEAM_ID= T.TEAM_ID
- 객체는 참조를 사용해서 연관된 객체를 찾는다.
- 테이블과 객체 사이에는 이런 큰 간격이 있다.
...
try
...
// 객체를 테이블에 맞추어 데이터 중심으로 모델링 진행
Team team = new Team();
team.setName("TeamA");
em.persist(team);
MemberRelation memberRelation = new MemberRelation();
memberRelation.setUserName("member1");
// member1 을 Team!에 소속시키고 싶다.
memberRelation.setTeamId(team.getId());
em.persist(memberRelation);
MemberRelation findMember = em.find(MemberRelation.class, memberRelation.getId());
Long findTeamId = findMember.getTeamId();
Team findTeam = em.find(Team.class, findTeamId);
...
oss0202/ex1-hello-jpa
JPA Hello World. Contribute to oss0202/ex1-hello-jpa development by creating an account on GitHub.
github.com
- 단방향 연관관계
- 객체 지향 모델링( 객체 연관관계 사용 )
MemberRelation
...
// 단방향 연관관계
@ManyToOne
@JoinColumn(name ="TEAM_ID")
private Team team;
...
...
// 객체를 테이블에 맞추어 데이터 중심으로 모델링 진행
Team team = new Team();
team.setName("TeamA");
em.persist(team);
MemberRelation memberRelation = new MemberRelation();
memberRelation.setUserName("member1");
// member1 을 Team!에 소속시키고 싶다.
memberRelation.setTeam(team);
em.persist(memberRelation);
//영속성 컨텍스트가 아닌 DB에서 조회해 오고 싶다면 -S
em.flush();// 쿼리 실행
em.clear();// 영속성 컨텍스트 삭제
//영속성 컨텍스트가 아닌 DB에서 조회해 오고 싶다면 -E
MemberRelation findMember = em.find(MemberRelation.class, memberRelation.getId());
Team findTeam = findMember.getTeam();
System.out.println("findTeam = " + findTeam.getName());
...
oss0202/ex1-hello-jpa
JPA Hello World. Contribute to oss0202/ex1-hello-jpa development by creating an account on GitHub.
github.com
책 추천
http://www.yes24.com/Product/Goods/18249021
객체지향의 사실과 오해 - YES24
『객체지향의 사실과 오해』는 객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장
www.yes24.com
http://www.yes24.com/Product/Goods/74219491
오브젝트 - YES24
역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를
www.yes24.com
출처
https://www.inflearn.com/course/ORM-JPA-Basic/dashboard
자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의
JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., 본 강의는 자바 백엔
www.inflearn.com