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 |