일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 김영한
- kotlin
- 스프링 핵심 기능
- 인프런
- AOP
- JDBC
- Servlet
- springdatajpa
- 백준
- SpringBoot
- 스프링
- 자바
- transaction
- 알고리즘
- Proxy
- Greedy
- 그리디
- Exception
- Thymeleaf
- http
- Spring Boot
- pointcut
- jpa
- QueryDSL
- JPQL
- 스프링 핵심 원리
- Android
- db
- java
- spring
- Today
- Total
목록다대일 (6)
개발자되기 프로젝트
1. 엔티티 주문과 배송은 1:1 상품과 카테고리는 N:M 2. ERD ORDERS와 DELIVERY 관계에서 FK는 ORDRES에서 관리. ORDER가 주 TABLE 다대다는 일대다, 다대일 관계로 풀어야함. 중간 테이블 필요. 3. 엔티티 상세 4. 코드 Delivery @Entity public class Delivery { @Id @GeneratedValue private Long id; @OneToOne(mappedBy = "delivery") private Order order; private String city; private String street; private String zipcode; private DeliveryStatus status; } Category - 다대다 매핑은 사..
1. 연관관계 매핑 시 고려사항 3가지 다중성 : 데이터베이스의 다중성기준으로 생각 다대일 : @ManyToOne ->제일 많이 씀 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany -> 쓰지마! 멈춰! ->일대다, 다대일로 풀어서 사용. 단방향, 양방향 테이블 - 외래 키 하나로 양쪽 조인 가능 - 방향이라는 개념이 없음 ㅋㅋㅋ 객체 - 참조용 필드가 있는 쪽으로만 참조 가능. - 한쪽만 참조하면 단방향 - 양쪽이 서로 참조하면 양방향. 연관관계 주인 테이블은 외래 키 하나로 두 테이블이 연관관계 맺음 객체 양방향 관계는 A->B, B->A 처럼 참조 두개 객체 양방향 관계는 참조가 2군데 있음. 둘 중 테이블의 외래키를 관리할 곳 지정 필요 연과관계 주인 : ..
1. 엔티티 클래스 개발 시 주의사항(Getter, Setter), 참고 이론적으로 Getter, Setter 모두 제공하지 않고, 꼭 필요한 별도의 메서드를 제공하는게 가장 이상적. Getter의 경우 모두 열어두는 것이 편리하다. Getter는 아무리 호출해도 호출 해도 값이 변하거나 무슨 일이 일어나지 않는다. 하지만 Setter를 호출하면 데이터가 변한다. Setter를 막 열어두면 엔티티가 왜? 변경되는지 추적하기 어려움 그래서 엔티티를 변경할 때는 Setter 대신에 변경 지점이 명확 하도록 변경을 위한 비즈니스 메서드를 별도로 제공해야 한다 테이블은 관례상 테이블명+id로 사용함. 그래서 column(name="필드명_id")로 했음. 2. 일대다, 다대일 many측에 FK가 있음. many..
1. 도메인 모델 회원과 주문의 관계 : 1 대 N 주문과 배송의 관계 : 1 대 1 카테고리와 상품의 관계 : N 대 N 주문과 상품의 관계 : N 대 N - 그러나 다대다 관계는 관계형 DB, entity에서도 사용하지 않음 - 1 대 N 관계로 풀기 위한 중간에 주문 상품이 존재. 상품을 도서 음반 영화 각각 상속 받음. 2. 엔티티 분석 Member : id(PK), 이름, 입베디드 타입인 Address, Order List를 가진다. Order : 한 번 주문 시 여러 상품 주문 가능함. 따라서 Order와 OrderItem을 일대다 관계. Order는 Item을 주문한 회원과 배송 정보, 주문 날짜, 주문 상태를 가지고 있다. 주문 상태는 열거형을 사용 --> 주문(Order), 취소(CANC..
다른 entiry에 대해서도 연관관계를 맺어주자. 1. Book 1) Book : Review = 1 : N --> @OneToMany -->중간 table 만들지 않기 위해 @JoinColumn필수 @JoinColumn(name = "book_id") --> name = "one_PK", 현재 class의 PK를 many의 FK로. List reviews = new ArraryList(); --> Null Point Exception방지를 위해 생성. 2) Book : Publisher = N : 1 --> @ManyToOne @Entity @NoArgsConstructor @Data @EntityListeners(value = AuditingEntityListener.class) @ToString(c..
1 : N 연관관계 - 1 이전에 만들어둔 User entity와 User History는 1:N연관관계를 갖는다. User는 현재 회원정보를 가지고 있는 테이블이고 UserHistory는 특정 user id에 저장된 값이 변경된 내역을 저장하는 table이다. 1. test @.. bsh-developer.tistory.com 앞서 1 : N의 연관관계를 살펴보았다. 1 : N 관계를 이해하기 어려웠던 이유는 N(many)쪽에서 1(one)의 PK를 FK로 가지고 있었기 때문이다. 일반적으로는 @ManyToOne이 깰끔하게entity를 구성할 수 있따. 해당 entity가 필요로 하는 FK값을 entity가 함께 가지고 있다. 이전에는 User class에서 @OneToMany를 적용했다면, 이번번에는..