Entity class는 무엇이고 Entity는 무엇인가...
객체- 속성과 동작이 있는 아이
명사형 클래스
- 클래스명 명사 <---테이블에 매칭을 시키고 객체를 생성시킨다 =>> 한로우/recode라고 표현한다.
- 속성(멤버변수)
- 생성자 ->제약조건을 잡는다 (특정속성값이 없으면 객체를 생성하지 못하도록)
역할을 하는 클래스
- 메소드 위주 설계
- 속성: 유지하는 상태, 조력자 <- DI의 대상이 된다.
- 생성자 -> 준비
이 두가지의 클래스가있기때문에 구분을 잘 해서 만들어주어야한다.
Entity Class는 한 row를 표현하기 위한 class이다.
Pk의 의미는 2가지가 있따
1.논리적인 의미 : 유니크함, 식별자
2. 물리적인의미 : 인덱스
B-tree의 구조 : 들어갈때느리지만 찾는데 빠르다.
Entity클래스는 Id가 반드시 필요하다.
오라클에서는 @GeneratedValue에서 체번테이블을 만들어서 올려주는 방법도 있고
@SequenceGenerator를 이용해서 테이블을 만들기도 한다.
Builder Pattern이 왜 편한가?
생성자를 여러개 사용하지 않고 원하는값만 넣어서 사용할 수 있다.
Id값이없는애들은 Enttiy라고 부르지 않고 Element~~등등으로 이름을 지어야한다.
타입의 결정을 미루는것이 제네릭이다.
Entity는 Pk가 중요한 데VO는 equals와 Hashcode를 overriding한다
DTO는 본질적으로 전달자이다. 그냥 1회용 비닐봉다리같은것
웹영역은 비즈니스계층으로 갈수 없고
영속계층의 영역도 영속계층을 벗어나면 안된다. 그래서 (DTO같은것에 담아서 이동시킨다)
JPA객체는 JPA Context에서 관리하고있기때문에 JPA객체를 화면으로 보내면 안된다 (각자의 영역을 벗어나는것이기때문에)
그래서 JPA를 쓸때는 DTO와 Entity를 정확히 구분해서 써야한다( Entity를 넘기면안되고..)
JPA를 쓸때 원칙
1. JPA객체를 절대로 영속영역을 벗어나지 말아라
2. DTO는 필요할때마다 만들어 쓴다.
'송파구청 특강 (2021-06 ~ 2021-07) > SpringBoot' 카테고리의 다른 글
| 강의13 (0) | 2021.06.30 |
|---|---|
| 강의12 (0) | 2021.06.30 |
| 강의10 (0) | 2021.06.29 |
| 강의9 (0) | 2021.06.29 |
| 강의8 (0) | 2021.06.29 |