객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것
feat) 조영호(객체지향의 사실과 오해)
[Member]
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
@Column(name = "USERNAME")
private String name;
@Column(name = "TEAM_ID")
private Long teamId;
// getter, setter...
}
[Team]
@Entity
public class Team {
@Id @GeneratedValue
private Long id;
private String name;
// getter, setter...
}
[JpaMain]
public class JpaMain {
public static void main(String[] args) {
... 생략
// 팀저장
Team team = new Team();
team.setName("teamA");
em.persist(team);
// 회원 저장
Member member = new Member();
member.setUsername("member1");
member.setTeamId(team.getId());
em.persist(member);
// Member의 팀을 조회하기 위해서는 teamId라는 매개체가 필요
// 객체지향스럽지 않다!
Member findMember = em.find(Member.class, member.getId());
Long findTeamId = findMember.getTeamId();
Team findTeam = em.find(Team.class, findTeamId);
... 생략
}
}