<aside> 💡 초호화 요약

</aside>

JPA (Java Persistence API )

ORM 기술의 표준으로 자바와 RDB의 패더라임 불일치를 개발자 대신 해결하여 객체지향 프로그래밍에 전념할 수 있다.

  1. 생산성 → CRUD SQL문 작성 X, DDL 자동생성 (테이블 자동 생성) →
  2. 유지보수 → 테이블 구조 변경에 유연하게 대체
  3. 패러다임 불일치 해결 → 상속, 연관관계, 비교, 객체 그래프 탐색
  4. 성능 → 배치SQL, 캐시기능
  5. 데이터 접근 추상화와 벤더 독립성 (다양한 DB Dialect 사용가능)

@Column( name='매핑할 칼럼 이름' 카멜 - 스네이크 표기법 , nullable='not null 설정')

@Enumerated(EnumType.String)

@Temporal(TemporalType.Date) LocalDate는 생략가능

임베디드 타입 @Embeddable @Embedded

엔티티가 의미 있고 응집력 있음 + 재사용(공유) 가능 + 메소드 추가 ⇒ 객체지향

매핑하는 테이블은 변화가 없다! (new 테이블 X)

속성 재정의 (2개의 같은 임베디드 타입) @AttributeOverrides @AttributeOverride

값 타입

공유 참조 : 객체를 공유하면 위험해서 값 타입을 단순하고 안전하게 다루기 위해