JPA (Java Persistence API)
Spring Data JPA 구조
Java ↔ Spring Data JPA ↔ JPA (Hibernate) ↔ JDBC ↔ DB
Spring Data JPA
Entity 관리
| 어노테이션 | 설명 |
|---|---|
@Entity |
엔티티 클래스 정의 |
@Table |
매핑될 테이블 정보 지정 |
@Id |
기본키(Primary Key) 지정 |
@GeneratedValue |
기본키 자동 생성 |
@Column |
필드-컬럼 매핑 |
@Query |
JPQL/네이티브 SQL 작성 |
@Transactional |
트랜잭션 처리 어노테이션 |
| 관계 | 어노테이션 | 패치전략 | 설명 |
|---|---|---|---|
| 1:1 | @OneToOne |
EAGER |
즉시 조회 |
| N:1 | @ManyToOne |
EAGER |
즉시 조회 |
| 1\:N | @OneToMany |
LAZY |
사용 시점에 조회 |
| N\:M | @ManyToMany |
EAGER |
즉시 조회 (보통 별도 테이블 관리 권장) |
기본 전략: LAZY 권장