λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ°˜μ‘ν˜•

JPA6

μ’‹μ•„μš” κΈ°λŠ₯을 톡해 μ‚΄νŽ΄λ³΄λŠ” λ™μ‹œμ„± 이슈 (synchronized) μ•ˆλ…•ν•˜μ„Έμš”, 이번 ν¬μŠ€νŒ…μ—μ„œλŠ” λ™μ‹œμ„±(Concurrency)에 λŒ€ν•΄ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. (예제 μ½”λ“œλŠ” κΉƒν—ˆλΈŒμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.) λ™μ‹œμ„±(Concurrency) κ°œλ… 넀이버 사전에 검색해본 λ™μ‹œμ„±μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. μ–΄λ–€ 두 사건이 같은 μ‹œκ°„μ— μΌμ–΄λ‚˜λŠ” 것을 이λ₯΄λŠ” 말 λŒ€λΆ€λΆ„μ˜ μ›Ή μ„œλ²„λŠ” μ—¬λŸ¬ 개의 μš”μ²­(ν΄λΌμ΄μ–ΈνŠΈ)을 λ™μ‹œμ— μˆ˜ν–‰ν•  수 있고, μ΄λŠ” μž‘μ„±ν•œ μ½”λ“œκ°€ λ™μ‹œμ— μˆ˜ν–‰λ  수 μžˆλ‹€λŠ” μ˜λ―Έμ™€ λ™μΌν•œ λ§₯λ½μž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ™μ‹œμ„± 문제λ₯Ό μ‚΄νŽ΄λ³΄κΈ° μœ„ν•΄ κ²Œμ‹œκΈ€μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈκ°€ λ™μ‹œμ— μ’‹μ•„μš”λ₯Ό ν–ˆμ„ λ•Œ λ°œμƒν•  수 μžˆλŠ” λ¬Έμ œμ— λŒ€ν•΄ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μœ„ 그림에 λŒ€ν•œ μ„€λͺ…은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. User Aκ°€ κ²Œμ‹œκΈ€ 1에 μ’‹μ•„μš”λ₯Ό ν΄λ¦­ν–ˆμ„ λ•Œ likeCount 쑰회 (likeCount = 0) User B도 κ²Œμ‹œκΈ€ .. 2023. 2. 26.
LazyInitializationException: could not initialize proxy - no Session Error πŸ“Ž org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ... entity.Folder.children could not initialize proxy - no Session 개인적으둜 진행쀑인 ν”„λ‘œμ νŠΈμ—μ„œ JPA 연관관계 ν…Œμ΄λΈ”μ˜ 쑰회 & μ‚­μ œ ν•˜λŠ” κ³Όμ •μ—μ„œ μœ„μ™€ 같은 μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. κ΄€λ ¨λœ μ½”λ“œλ₯Ό κ°„λ‹¨νžˆ λ‚˜νƒ€λ‚΄λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. (ν¬μŠ€νŒ…μ—μ„œ ν‹€λ¦° λ‚΄μš©μ΄ μžˆλ‹€λ©΄ ν”Όλ“œλ°± μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€. πŸ™Œ) Folder μ—”ν‹°ν‹° @Entity class Folder( ... @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_id") @.. 2022. 6. 1.
JPQL @Query μ—λŸ¬: For queries with named parameters you need to use provide names for method parameters πŸ“Ž For queries with named parameters you need to use provide names for method parameters Spring Data JPAμ—μ„œ μ•„λž˜ Entityλ₯Ό 톡해 쑰회λ₯Ό ν•˜λ €λŠ”λ° 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. (email에 λŒ€ν•œ λ°μ΄ν„°λŠ” DB에 μ‘΄μž¬ν•©λ‹ˆλ‹€.) import ... @Entity @Builder @NoArgsConstructor @AllArgsConstructor @Getter @ToString public class ClubMember extends BaseEntity { @Id private String email; @Column private String password; @Column private String name; @Column pri.. 2021. 7. 6.
JPA 연관관계 μ˜μ†μ„± 전이(CASCADE) - CascadeType πŸ“Ž JPA μ˜μ†μ„± 전이(CASCADE) μ•ˆλ…•ν•˜μ„Έμš”! μ΄λ²ˆμ— 정리할 λ‚΄μš©μ€ JPAμ—μ„œ μ˜μ†μ„± 전이(CASCADE)와 κ΄€λ ¨λœ λ‚΄μš©μž…λ‹ˆλ‹€. 졜근 κ°œλ°œμ„ μ§„ν–‰ν•˜λ©° 두 μ—°κ΄€λœ μ—”ν‹°ν‹°μ—μ„œ save()λ₯Ό ν•˜λŠ” κ³Όμ •μ—μ„œ 였λ₯˜κ°€ λ°œμƒν–ˆκ³ , 이λ₯Ό ν•΄κ²°ν•˜λŠ” κ³Όμ •μ—μ„œ μ˜μ†μ„± 전이(CASCADE)λΌλŠ” κ°œλ…μ— λŒ€ν•΄ μ•Œκ²Œ λ˜μ—ˆκ³ , 이λ₯Ό μ •λ¦¬ν•˜κ³ μž ν•©λ‹ˆλ‹€. 😊 (β€» 잘λͺ»λœ λ‚΄μš©μ΄ ν¬ν•¨λ˜μ–΄ μžˆμ„μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 잘λͺ»λœ 뢀뢄에 λŒ€ν•΄ μ§€μ ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€ πŸ˜‚) 🎯 μ˜μ†μ„±μ „μ΄(CASCADE)λž€ ? λΆ€λͺ¨ μ—”ν‹°ν‹°κ°€ μ˜μ†ν™”λ  λ•Œ μžμ‹ 엔티티도 같이 μ˜μ†ν™”λ˜κ³ , λΆ€λͺ¨ μ—”ν‹°ν‹°κ°€ μ‚­μ œλ  λ•Œ μžμ‹ 엔티티도 μ‚­μ œλ˜λŠ” λ“± νŠΉμ • μ—”ν‹°ν‹°λ₯Ό μ˜μ† μƒνƒœλ‘œ λ§Œλ“€ λ•Œ μ—°κ΄€λœ 엔티티도 ν•¨κ»˜ μ˜μ† μƒνƒœλ‘œ μ „μ΄λ˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 즉, νŠΉμ • 엔티티에 λŒ€ν•΄ νŠΉμ •ν•œ μž‘.. 2021. 6. 21.
Spring Data JPA μ¦‰μ‹œ λ‘œλ”©(Eager Loading) & μ§€μ—° λ‘œλ”©(Lazy Loading) πŸ“Ž JPA - @ManyToOne μ¦‰μ‹œ λ‘œλ”©κ³Ό μ§€μ—° λ‘œλ”©(Eager Loading / Lazy Loading) Spring Data JPAμ—μ„œ @ManyToOne(N:1)으둜 연관관계가 μ„€μ •λ˜μ–΄ μžˆλŠ” 2개의 Entityκ°€ μ‘΄μž¬ν•  λ•Œ, λ°μ΄ν„°λ² μ΄μŠ€μ˜ μž…μž₯μ—μ„œ 보면 join이 ν•„μš”ν•©λ‹ˆλ‹€. μ‹€μ œ @ManyToOne의 경우 FKμͺ½μ˜ μ—”ν‹°ν‹°λ₯Ό κ°€μ Έμ˜¬ λ•Œ PKμͺ½μ˜ 엔티티도 같이 κ°€μ Έμ˜€κ²Œ λ˜λŠ”λ°μš”, μ΄λŸ¬ν•œ 과정이 κΌ­ ν•„μš”ν•œκ±΄μ§€, ν•„μš”ν•˜μ§€ μ•Šλ‹€λ©΄ μ–΄λ–»κ²Œ ν•΄κ²°ν•  수 μžˆλŠ”μ§€ μ¦‰μ‹œ λ‘œλ”©κ³Ό μ§€μ—° λ‘œλ”©μ— λŒ€ν•΄ 예제λ₯Ό 톡해 μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. ⌨️ Board, Member μ—”ν‹°ν‹° import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import .. 2021. 6. 17.
[Spring Boot] - Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration' • μ•ˆλ…•ν•˜μ„Έμš”~ 이전에 μš΄μ˜ν•˜λ˜ λΈ”λ‘œκ·Έ 및 GitHub, 곡뢀 λ‚΄μš©μ„ μ •λ¦¬ν•˜λŠ” Study-GitHub κ°€ μžˆμŠ΅λ‹ˆλ‹€! • 넀이버 λΈ”λ‘œκ·Έ • GitHub • Study-GitHub • πŸ” Spring Bootμ—μ„œ 초기 ν”„λ‘œμ νŠΈλ₯Ό 생성할 λ•Œ, Spring Data JPAλ₯Ό μ²΄ν¬ν•˜κ³  ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν–ˆλŠ”λ°, 처음 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜λ € ν•˜λ‹ˆ μ•„λž˜μ™€ 같은 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name org.springfram.. 2021. 3. 7.
λ°˜μ‘ν˜•