<aside> πŸ’‘

JPA - λ³€κ²½ 감지와 병합(merge)

</aside>

<aside> πŸ’‘

jpa μ„€μ •

</aside>

<aside> πŸ’‘

μ—”ν‹°ν‹° λ§€ν•‘

</aside>

<aside> πŸ’‘

μ˜μ†μ„± μ»¨ν…μŠ€νŠΈ

</aside>

<aside> πŸ’‘

연관관계 λ§€ν•‘

</aside>

πŸ“‚ JPA 1 β”‚ β”œβ”€β”€ πŸ“„ 1. JPA μ†Œκ°œ β”‚ β”œβ”€β”€ 1.1 JPAλž€? β”‚ β”œβ”€β”€ 1.2 JPA의 μž₯점 β”‚ β”œβ”€β”€ 1.3 JPA와 Hibernate 비ꡐ β”‚ └── 1.4 JPA의 ꡬ성 μš”μ†Œ β”‚ β”œβ”€β”€ πŸ“„ 2. μ—”ν‹°ν‹° λ§€ν•‘ β”‚ β”œβ”€β”€ 2.1 μ—”ν‹°ν‹° ν΄λž˜μŠ€λž€? β”‚ β”œβ”€β”€ 2.2 κΈ°λ³Έ λ§€ν•‘ (@Entity, @Id, @GeneratedValue λ“±) β”‚ β”œβ”€β”€ 2.3 κΈ°λ³Έ ν‚€ μ „λž΅ (Identity, Sequence, Table) β”‚ β”œβ”€β”€ 2.4 @ManyToOne, @OneToMany λ“± μ—°κ΄€ 관계 λ§€ν•‘ β”‚ └── 2.5 @OneToOne, @ManyToMany μ—°κ΄€ 관계 λ§€ν•‘ β”‚ β”œβ”€β”€ πŸ“„ 3. JPQL (Java Persistence Query Language) β”‚ β”œβ”€β”€ 3.1 JPQL κ°œμš” β”‚ β”œβ”€β”€ 3.2 JPQL κΈ°λ³Έ 문법 β”‚ β”œβ”€β”€ 3.3 JPQL의 쑰건문과 μ •λ ¬ β”‚ β”œβ”€β”€ 3.4 JPQL의 JOIN β”‚ └── 3.5 Native SQLκ³Ό JPQL 차이점 β”‚ β”œβ”€β”€ πŸ“„ 4. μ˜μ†μ„± μ»¨ν…μŠ€νŠΈ (Persistence Context) β”‚ β”œβ”€β”€ 4.1 μ˜μ†μ„± μ»¨ν…μŠ€νŠΈλž€? β”‚ β”œβ”€β”€ 4.2 μ˜μ†μ„± μƒνƒœ (Transient, Persistent, Detached, Removed) β”‚ β”œβ”€β”€ 4.3 μ˜μ†μ„± μ»¨ν…μŠ€νŠΈμ˜ 관리 (Persist, Merge, Remove) β”‚ β”œβ”€β”€ 4.4 μ˜μ†μ„± μ»¨ν…μŠ€νŠΈμ™€ μΊμ‹œ β”‚ └── 4.5 μ˜μ†μ„± μ»¨ν…μŠ€νŠΈμ™€ νŠΈλžœμž­μ…˜ β”‚ β”œβ”€β”€ πŸ“„ 5. νŠΈλžœμž­μ…˜ 관리 β”‚ β”œβ”€β”€ 5.1 νŠΈλžœμž­μ…˜μ΄λž€? β”‚ β”œβ”€β”€ 5.2 νŠΈλžœμž­μ…˜ μ „νŒŒ (Propagation) β”‚ β”œβ”€β”€ 5.3 νŠΈλžœμž­μ…˜ 격리 μˆ˜μ€€ (Isolation) β”‚ └── 5.4 νŠΈλžœμž­μ…˜κ³Ό JPA β”‚ β”œβ”€β”€ πŸ“„ 6. μ—°κ΄€ 관계 λ§€ν•‘ β”‚ β”œβ”€β”€ 6.1 @ManyToOne, @OneToMany λ§€ν•‘ β”‚ β”œβ”€β”€ 6.2 @OneToOne λ§€ν•‘ β”‚ β”œβ”€β”€ 6.3 @ManyToMany λ§€ν•‘ β”‚ β”œβ”€β”€ 6.4 μ–‘λ°©ν–₯ μ—°κ΄€ 관계와 단방ν–₯ μ—°κ΄€ 관계 β”‚ β”œβ”€β”€ 6.5 μ—°κ΄€ κ΄€κ³„μ˜ 주인 (μ–‘λ°©ν–₯ μ—°κ΄€ κ΄€κ³„μ—μ„œ 주인 μ„€μ •) β”‚ └── 6.6 Cascade와 orphanRemoval β”‚ β”œβ”€β”€ πŸ“„ 7. JPA μ„±λŠ₯ μ΅œμ ν™” β”‚ β”œβ”€β”€ 7.1 μ§€μ—° λ‘œλ”© vs μ¦‰μ‹œ λ‘œλ”© (Lazy Loading vs Eager Loading) β”‚ β”œβ”€β”€ 7.2 N+1 문제 ν•΄κ²° 방법 β”‚ β”œβ”€β”€ 7.3 Batch 처리 β”‚ β”œβ”€β”€ 7.4 1μ°¨ μΊμ‹œμ™€ 2μ°¨ μΊμ‹œ β”‚ └── 7.5 쿼리 μ΅œμ ν™” β”‚ β”œβ”€β”€ πŸ“„ 8. Spring Data JPA β”‚ β”œβ”€β”€ 8.1 Spring Data JPA μ†Œκ°œ β”‚ β”œβ”€β”€ 8.2 Repository μΈν„°νŽ˜μ΄μŠ€ β”‚ β”œβ”€β”€ 8.3 Query Method β”‚ β”œβ”€β”€ 8.4 JPQLκ³Ό λ„€μ΄ν‹°λΈŒ SQL 쿼리 β”‚ β”œβ”€β”€ 8.5 νŽ˜μ΄μ§•κ³Ό μ •λ ¬ β”‚ └── 8.6 μ»€μŠ€ν…€ 리포지토리 κ΅¬ν˜„ β”‚ β”œβ”€β”€ πŸ“„ 9. JPA와 Spring 톡합 β”‚ β”œβ”€β”€ 9.1 Springκ³Ό JPA 톡합 β”‚ β”œβ”€β”€ 9.2 μŠ€ν”„λ§ νŠΈλžœμž­μ…˜ 관리 β”‚ β”œβ”€β”€ 9.3 JPA의 μ˜ˆμ™Έ 처리 (Optimistic Locking, Pessimistic Locking) β”‚ └── 9.4 μ—”ν‹°ν‹° κ·Έλž˜ν”„(Entity Graph) β”‚ └── πŸ“„ 10. JPA κ³ κΈ‰ κ°œλ… β”œβ”€β”€ 10.1 상속 관계 λ§€ν•‘ (Single Table, Table Per Class, Joined) β”œβ”€β”€ 10.2 μ—”ν‹°ν‹° λ¦¬μŠ€λ„ˆμ™€ 콜백 β”œβ”€β”€ 10.3 JPA Validation └── 10.4 배치 처리 (Batch Processing)