일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Proxy
- AOP
- springdatajpa
- QueryDSL
- http
- spring
- 백준
- 김영한
- Spring Boot
- kotlin
- JPQL
- Android
- 그리디
- Thymeleaf
- Exception
- Greedy
- transaction
- Servlet
- 스프링 핵심 기능
- pointcut
- SpringBoot
- db
- JDBC
- java
- jpa
- 알고리즘
- 스프링 핵심 원리
- 자바
- 스프링
- 인프런
- Today
- Total
목록jpa (149)
개발자되기 프로젝트
1. 요구사항 추가 상품의 종류는 음반, 도서, 영화가 있고 이후 더 확장이 될 수 있어 모든 데이터는 등록일과 수정일이 필수! 2. 도메인 모델 3. 도메인 모델 상세 4. 테이블 설계 5. Item class @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn public abstract class Item { @Id @GeneratedValue() //default = auto. @Column(name = "ITEM_ID") private Long id; Hibernate..
1. @MappedSuperclass 공통 매핑 정보가 필요할 때 사용(id, name) 예를 들어 객체 마다 모두 id 와 name이 있는데 매번 만들기 너무 귀찮음.. 객체는 상속받아서 사용하면됨 상속 관계 매핑이 아니라 단순이 super class의 속성만 사용함. BaseEntity class - @MappedSuperclass @MappedSuperclass public abstract class BaseEntity { private String createdBy; private LocalDateTime createdDate; private String modifiedBy; private String lastModifiedBy; private LocalDateTime lastModifiedDat..
1. 상속관계 매핑 객체는 상속관계가 있으나, 관계형 데이터베이스는 상속관계가 없음 슈퍼타입 서브타입 관계라는 모델링 기법이 그나마 객체 상속과 유사 상속관계 매핑 : 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑. 슈퍼타입 : 공통 부분만 가지고 있음 서브타입 : 개별적으로 가지는 속성들. 2. 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 각각 테이블로 변환 -> 조인 전략 PK, FK로 조인함 ITEM TABLE만 보면 구분이 안되는데..어떻게 구분..?->DTYPE 통합 테이블로 변환 -> 단일 테이블 전략 논리 모델을 한 테이블로 합쳐버림. 한 테이블에 있으면 어떻게 구분..? DTYPE 서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략 테이블을 각각 구현. 3..
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. 다대다 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계 표현이 안됨!!!!! 연결 테이블을 추가해서 일대다, 다대일 관계로 풀어내야함. 그런데??? 객체는 컬렉션을 사용해서 객체 2개로 다대다 가능 ㅋㅋㅋㅋ 2. 다대다 특징 @ManyToMany사용 @JoinTable로 연결 테이블 지정 단방향 , 양방향 가능 Member -> Product @ManyToMany @JoinTable(name = "MEMBER_PRODUCT") private List products = new ArrayList(); Product -> Member @ManyToMany(mappedBy = "products") private List members = new ArrayList(); 3. 다대다 한계 편리해 ..
1. 일대일 관계 일대일 관계는 당연히 반대도 일대일 주 테이블이나 대상 테이블 중에 외래 키 선택 가능 주 테이블에 외래 키 대상 테이블에 외래 키 외래 키 데이터베이스 유니크(UNI) 제약조건 추가된 것이 일대일 관계 2. 주 테이블에 외래 키 단방향 다대일 단방향 매핑과 유사 Member -> Locker @OneToOne @JoinColumn(name = "LOCKIER_ID") private Locker locker; 3. 주 테이블에 외래키 양방향 Member가 주인! Member -> Locker @OneToOne @JoinColumn(name = "LOCKIER_ID") private Locker locker; Locker -> Member @OneToOne(mappedBy = "loc..
1. 일대다 단방향 매핑. "일"이 연관관계 주인.? 이 모델은 권장하진 않음.. 표준에서 지원하긴 함. Team에서 Member를 참조하나 Member는 Team을 참조하지 않음.. 하지만 DB입장에서 FK는 MEMBER("다")에 있음 즉, Team의 members를 변경했을 때, MEMBER 테이블의 TEAM_ID(FK)를 변경해야함. -> 다른 테이블의 FK를 업데이트를 해야함.. 2. TEST @Entity public class Team { @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String name; @OneToMany @JoinColumn(name = "TEAM_ID") private List membe..
1. 연관관계 매핑 시 고려사항 3가지 다중성 : 데이터베이스의 다중성기준으로 생각 다대일 : @ManyToOne ->제일 많이 씀 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany -> 쓰지마! 멈춰! ->일대다, 다대일로 풀어서 사용. 단방향, 양방향 테이블 - 외래 키 하나로 양쪽 조인 가능 - 방향이라는 개념이 없음 ㅋㅋㅋ 객체 - 참조용 필드가 있는 쪽으로만 참조 가능. - 한쪽만 참조하면 단방향 - 양쪽이 서로 참조하면 양방향. 연관관계 주인 테이블은 외래 키 하나로 두 테이블이 연관관계 맺음 객체 양방향 관계는 A->B, B->A 처럼 참조 두개 객체 양방향 관계는 참조가 2군데 있음. 둘 중 테이블의 외래키를 관리할 곳 지정 필요 연과관계 주인 : ..