persist
- 엔티티를 영속성 컨텍스트에서 관리되도록 만든다.
- 해당 메서드 호출시 해당 엔티티의 식별자(PK) 가 생성되며, 해당 식별자는 트랜잭션이 커밋되는 시점에 DB에 반영한다.
@GeneratedValue같은 식별자 자동 생성 타입으로 설정된 경우에만 PK 를 가져올 수 있음.- 실제 DB에 반영되는 것은 트랜잭션이 커밋되는 시점임!
repository.save
- EntityManager.persist 또는 EntityManager.merge를 호출
- 주어진 엔티티가 새로운 엔티티인지 아닌지를 판단하여 적절한 작업을 수행
- save 메서드는 호출 즉시 데이터베이스에 반영되지 않고, 트랜잭션이 커밋되는 시점에 데이터베이스에 반영
차이점새로운 엔티티(식별자가 없거나 영속성 컨텍스트에 없는 엔티티)persist를 호출
이미 존재하는 엔티티merge를 호출합니다.
Uploaded by N2T
'자바 > JPA' 카테고리의 다른 글
| [JPA] .setHint(QueryHints.READ_ONLY, true) (0) | 2024.03.02 |
|---|---|
| Jpa CascadeType 각 모드의 역할과 예시 코드 (0) | 2024.02.21 |
| [Qdsl, JPA] @PersistenceContext 의 역할 (0) | 2024.02.21 |
| Jpa 에서 `@mappedBy` ? (0) | 2024.02.19 |
| [JPA] 락 사용방법 및 종류 (0) | 2023.11.21 |