| 상태 | 설명 |
|---|---|
| 비영속 | 단순 객체 상태, 아직 영속성 컨텍스트에 저장되지 않음 |
| 영속 | em.persist(entity) 호출 시, 영속성 컨텍스트에 저장됨 (DB에는 아직 저장되지 않음) |
| 준영속 | em.detach(entity) 호출 시, 영속성 컨텍스트에서 분리됨 |
| 삭제 | em.remove(entity) 호출 시, 해당 객체는 DB에서도 삭제됨 |
== 비교도 true)em.detach(entity) : 특정 엔티티만 분리em.clear() : 전체 영속성 컨텍스트 비움em.close() : 종료 (더 이상 작업 불가)| 전략 | 설명 |
|---|---|
| IDENTITY | DB가 키 생성, persist() 시 insert 쿼리 실행 후 PK 반환 → 쓰기 지연 불가 |
| SEQUENCE | DB에서 시퀀스 값만 조회 후, 쓰기 지연 가능 → 성능상 이점은 그닥 |
@JoinColumn은 FK를 둘 테이블과 컬럼 이름을 지정함mappedBy 로 지정된 반대편이 주인 아님 (읽기 전용)referencedColumnName: 참조 대상의 PK (또는 다른 컬럼)em.getReference() : 데이터베이스 조회를 미루는 가짜 객체(프록시)target 필드를 가짐== 대신 instanceof로 비교 필요@ManyToOne, @OneToOne은 기본이 EAGER → 반드시 LAZY로 설정 권장