목록BE (354)
오봉이와 함께하는 개발 블로그
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MeryW/btrFIewUfQ0/YPMnxHPOckJoQBK6SWAVJk/img.png)
실전 - 연관관계 매핑 시작 테이블 구조는 다음과 같다 참조를 사용하도록 변경한 객체 구조는 다음과 같다. 코드 기존 코드는 아래 링크 참조 https://5bong2-develop.tistory.com/223 Member @Entity @Getter @Setter public class Member { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "MEMBER_ID") private Long id; private String name; private String city; private String street; private String zipcode; @OneToMany(mappedBy = "member") private L..
양방향 연관관계와 연관관계의 주인 - 주의점 양방향 매핑시 가장 많이 하는 실수는 연관관계의 주인에 값을 입력하지 않는 것이다. Member member = new Member(); member.setName("Member1"); em.persist(member); Team team = new Team(); team.setName("TeamA"); team.getMembers().add(member); em.persist(team); Team의 members는 @mappedBy를 했기 때문에 읽기 전용으로 바뀐다. 역방향(주인이 아닌 방향)만 연관관계를 설정했기 때문에 Member 테이블의 TEAM_ID는 null이 들어간다. Team team = new Team(); team.setName("TeamA..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mqgId/btrFFPL1ZOT/FTudOGq96Zmzab1TNBx311/img.png)
양방향 연관관계와 연관관계의 주인1 - 기본 양방향 매핑 전에 했던 코드는 Member에서는 Team을 얻어올 수 있는 관계 즉, 단방햔 매핑 관계였다. 이제 우리는 Member to Team, Team to Member 모두 얻어올 수 있게 양방향 매핑 관계로 구성을 해야 한다. 테이블에서는 외래키로 조인을 하면 되기 때문에 양방향 참조를 할 때는 테이블에 변화가 생기지 않는다. 즉 테이블에서는 외래키 하나로 양방향을 다 알 수 있기 때문에 사실상 방향이 존재하지 않는다. 하지만, 객체는 아니기 때문에 Team에 Member를 넣어줘야 참조할 수 있다. 코드 멤버는 전과 동일하다. public class Member { @Id @GeneratedValue private Long id; @Column(n..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LOjhp/btrFHJX1a4d/j1Fl0VOxX3T9Wt0tGK3DPK/img.png)
단방향 연관관계 예제 시나리오 회원과 팀이 있다. 회원은 하나의 팀에만 소속될 수 있다. 회원과 팀은 다대일 관계다.(회원 = N, 팀 = 1) 객체를 테이블에 맞춰 모델링(연관관계가 없는 객체) 위 사진을 코드로 구현한 엔티티는 아래와 같다. @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @Column(name = "TEAM_ID") private Long teamId; } //............................... @Entity public class Team { @Id @GeneratedValue..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/chmJr9/btrFHrb2ntZ/aiXqulKUBOewIPmga0Gudk/img.png)
요구사항 분석과 기본 매핑 회원은 상품을 주문할 수 있으며, 주문 시 여러 종류의 상품을 선택할 수 있다. 기능 목록 회원 회원 가입 회원 조회 상품 상품 등록 상품 수정 상품 조회 주문 상품 주문 주문 내역 조회 주문 취소 도메인 모델 분석 회원과 주문의 관계 : 회원은 여러 번 주문할 수 있다. 주문과 상품의 관계 : 주문할 때 여러 상품을 선택할 수 있다. 반대로 같은 상품도 여러 번 주문될 수있으며, 주문상품이라는 모델을 만들어서 다대가 관계를 일다대, 다대일 관계로 풀어냄 테이블 설계 엔티티 설계와 매핑 코드 Member @Entity @Getter @Setter public class Member { @Id @GeneratedValue(strategy = GenerationType.AUTO) ..