DB에 commit 된 시점이 아니라도 Id 값이 항상 있는걸 보장 된다.
( 데이터베이스마다 다르지만 seqeunce, 가짜로 database를 만들어서 key 값 추출 등 Id 값을 넣어준다.)
- Spring에서 제공하는 Transaction이 옵션이 많음
- 조회하는 method에 readOnly 옵션을 true로 주면 성능 최적화 > 영속성 context flush를 안함, dirtyChecking x 등
final이 적용 된 field만 생성자를 생성