본 내용은 인프런 김영한 강사님 JPA 기본 편 강의를 듣고 정리한 내용입니다.
https://www.inflearn.com/course/ORM-JPA-Basic
자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 - 인프런
저는 야생형이 아니라 학자형인가봐요^^ 활용편 넘어갔다 30% 정도 듣고 도저히 답답해서 기본편을 들어버렸네요^^. 한주 한주 김영한님 강의 들으니 렙업되는 모습을 스스로 느낍니다. 특히 실
www.inflearn.com
연관관계가 필요한 이유
연관관계가 없는 객체 즉, 객체를 테이블에 맞춰 모델링을 할 경우 문제점이 존재하는데 객체 간의 협력 관계를 만들 수 없다는 것이다
이 말은 객체지향적인 코드가 아니게 된다는 것이다.
이런 식으로 하게 되면 Team과 Member의 연관관계가 존재하지 않는다. 그래서 나중에 Member의 팀에서 팀의 이름을 호출할 때 억지로 호출을 해야 한다.
위 코드처럼 Member와 Team의 연관관계가 없기 때문에 객체의 협력으로 값을 가져오는 것이 아닌 id을 가져오고 그 팀의 이름을 꺼내오는 듯이 억지로 값을 가져와야 한다.
객체지향 모델링
위 코드를 객체지향으로 바꾸려면 어떻게 해야 할까?
teamId 대신 Team 객체를 직접 연관관계를 만들면 된다.
이런 식으로 엔티티를 설계 하게 되면 위와 다르게 객체의 협력관계를 만들 수 있다.
이렇게 연관관계에서는 연관관계가 수정하기 되게 편하다
만약 TeamB가 생겨서 member1가 TeamB로 바꿨다고 생각해 보자
이런식으로 바로 teamB를 주입하면 된다.
'JAVA & SPRING > JPA' 카테고리의 다른 글
JPA 기본편0 (연관관계 관리 즉시로딩과, 지연로딩) (0) | 2024.03.04 |
---|---|
JPA 기본편(프록시) (0) | 2024.03.04 |
JPA 기본편0 (기본키 매핑) (0) | 2024.02.20 |
JPA 기본편0 (엔티티 매핑) (0) | 2024.02.20 |
JPA 기본편0 (영속성 컨텍스트 이점(2)) (1) | 2024.02.15 |