π±Β μ€νλ§ λ°μ΄ν° JPA λΆμ
μ€νλ§ λ°μ΄ν° JPA ꡬν체 λΆμ
- μ€νλ§ λ°μ΄ν° JPAκ° μ 곡νλ κ³΅ν΅ μΈν°νμ΄μ€μ ꡬν체
org.springframework.data.jpa.repository.support.SimpleJpaRepository
SimpleJpaRepository
@Repository
@Transactional(readOnly = true)
public class SimpleJpaRepository<T, ID> ...{
@Transactional
public <S extends T> S save(S entity) {
if (entityInformation.isNew(entity)) {
em.persist(entity);
return entity;
} else {
return em.merge(entity);
}
}
...
}
-
@Repository
μ μ© : JPA μμΈλ₯Ό μ€νλ§μ΄ μΆμνν μμΈλ‘ λ³ν
-
@Transactional
νΈλμμ
μ μ©
- JPAμ λͺ¨λ λ³κ²½μ νΈλμμ
μμμ λμ
- μ€νλ§ λ°μ΄ν° JPAλ λ³κ²½(λ±λ‘, μμ , μμ ) λ©μλλ₯Ό νΈλμμ
μ²λ¦¬
- μλΉμ€ κ³μΈ΅μμ νΈλμμ
μ μμνμ§ μμΌλ©΄ 리νμ§ν 리μμ νΈλμμ
μμ
- μλΉμ€ κ³μΈ΅μμ νΈλμμ
μ μμνλ©΄ 리νμ§ν 리λ ν΄λΉ νΈλμμ
μ μ ν λ°μμ μ¬μ©
- κ·Έλμ μ€νλ§ λ°μ΄ν° JPAλ₯Ό μ¬μ©ν λ νΈλμμ
μ΄ μμ΄λ λ°μ΄ν° λ±λ‘, λ³κ²½μ΄ κ°λ₯νμ(μ¬μ€μ νΈλμμ
μ΄ λ¦¬ν¬μ§ν 리 κ³μΈ΅μ κ±Έλ €μλ κ²μ)
-
@Transactional(readOnly = true)
- λ°μ΄ν°λ₯Ό λ¨μν μ‘°νλ§ νκ³ λ³κ²½νμ§ μλ νΈλμμ
μμ
readOnly = true
μ΅μ
μ μ¬μ©νλ©΄ νλ¬μλ₯Ό μλ΅ν΄μ μ½κ°μ μ±λ₯ ν₯μμ μ»μ μ μμ
-
save()
λ©μλ
- μλ‘μ΄ μν°ν°λ©΄ μ μ₯(
persist
)
- μλ‘μ΄ μν°ν°κ° μλλ©΄ λ³ν©(
merge
)
μλ‘μ΄ μν°ν°λ₯Ό ꡬλ³νλ λ°©λ²
- μλ‘μ΄ μν°ν°λ₯Ό νλ¨νλ κΈ°λ³Έ μ λ΅
- μλ³μκ° κ°μ²΄μΌ λ
null
λ‘ νλ¨
- μλ³μκ° μλ° κΈ°λ³Έ νμ
μΌ λ
0
μΌλ‘ νλ¨
Persistable
μΈν°νμ΄μ€λ₯Ό ꡬνν΄μ νλ¨ λ‘μ§ λ³κ²½ κ°λ₯