- 테이블에서 team_id와 team_id가 연결되어 있다면
 - 객체에서는 teamId -> id 연결이 걸려있어야 한다.
 
Entity
@Getter @Setter
public class Member {
	@Id @GeneratedValue
	@Column(name = "MEMBER_ID")
	private Long id;
	
	@Column(name = "USERNAME")
	private String name;
	
	@Column(name = "TEAM_ID")
	private Long teamid;
}
@Entity
@Getter @Setter
public class Team {
	
	@Id @GeneratedValue
	@Column(name = "TEAM_ID")
	private Long id;
	private String name;
	
}
DB에 저장, 조회하는 로직
DB관계 상 team이 만들어진 뒤 member가 할당
member1 이 소속된 팀 정보를 조회하려면 어떻게 해야하는가?
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");
			// 영속상태가 되면, PK의 값이 세팅이 된 후 영속상태 된다.
			em.persist(team);
			
			Member member = new Member();
			member.setName("member1");
			// team이 영속성컨텍스트 안에있므로 DB에서 select해올 필요가 없다
			member.setTeamid(team.getId());
			em.persist(member);
			
			// select
			// 어느팀 소속인지 알고 싶을 때 jpa(영속성) or db에게 계속 물어봐야 한다.
			// 최종적으로 Member가 속해있는 팀의 이름이 궁금하다!!
			// db에서는 left join으로 알수있다.
			// 해당 객체에 해당 키값을 넘겨서 findMember에 담아온다.
			Member findMember = em.find(Member.class, member.getId());
			// findMember에 팀의 아이디를 획득한 다음
			Long findTeamid = findMember.getTeamid();
			// 팀의 아이디를 가지고 팀객체에서 find해서 팀의 정보가 나오게되고
			Team findTeam = em.find(Team.class, findTeamid);
			// 팀의 정보에서 name을 가져오면 찾고자하는 member의 팀이름을 출력
			System.out.println("findTeam : " + findTeam.getName());
		
			// 영속성으로 들어감
			tx.commit();
		}catch (Exception e) {
			tx.rollback();
		}finally {
			em.close();
			emf.close();
		}
		
	}
- 중간에 위치한 이유는 영속성 컨텍스트에 먼저 보내고, db에 insert하기 때문이다.
 
- 1(Team) 대 다(Member) 관계
 - Member라는 클래스는 Team이라는 클래스를 참조시켜버림
 
@ManyToOne : 여기에선 Team이 하나@JoinColumn : 관계 컬럼을 적어준다. TEAM_ID와 조인해야 한다.@ManyToOne @JoinColumn 을 통해 멤버(Member)에서 팀(Team)을 참조하도록 했다. @Entity
@Getter @Setter
public class Member {
	@Id @GeneratedValue
	@Column(name = "MEMBER_ID")
	private Long id;
	
	@Column(name = "USERNAME")
	private String name;
	
	@ManyToOne
	@JoinColumn(name = "TEAM_ID")
	private Team team;
}
- 대상이 되는 컬럼의 명칭을 매핑 시켜줘야 한다.
 
			Team team = new Team();
			team.setName("TeamA");
			// 영속상태가 되면, PK의 값이 세팅이 된 후 영속상태 된다.
			em.persist(team);
			
			Member member = new Member();
			member.setName("member1");
            // Member에서 Team을 객체로 자체로 받아온다.
            // 객체(Team) 자체를 세팅
			member.setTeam(team);
			em.persist(member);
			
			// 강제로 DB 쿼리를 보고싶을때
			em.flush();
			em.clear();
			
			// select 조회
			// find시에 1차캐시에서 가지고 와서 select문이 없다.
			Member findMember = em.find(Member.class, member.getId());
            // 멤버세서 팀 객체를 통으로 받아와서 꺼내온다.
			Team findTeam = findMember.getTeam();
			System.out.println("findTeam : " + findTeam.getName());
			
			// 영속성으로 들어감
			tx.commit();