λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
[Error Handling]

😑 쀑볡λͺ…μ˜ 클래슀 νŒŒμΌμ„ μ§€μ›Œλ„ 빈 μ΄λ¦„μœΌλ‘œ 좩돌이 λ‚  λ•Œ ν•΄κ²° 방법(DuplicateMappingException, BeanCreationException)

by νŒ‘νŽ‘ν 2023. 6. 5.
728x90

🚨 Error :

Caused by: org.hibernate.DuplicateMappingException: The [jpabook.jpashop.Member] and [jpabook.jpashop.domain.Member] entities share the same JPA entity name: [Member] which is not allowed!

 κΉ€μ˜ν•œ λ‹˜μ˜ κ°•μ˜λ₯Ό λ“£λŠ” 도쀑에 μŠ€ν”„λ§ λΆ€νŠΈ μ„œλ²„κ°€ μ—λŸ¬μ™€ ν•¨κ»˜ 싀행이 λ˜μ§€ μ•Šμ•˜λ‹€. μ—λŸ¬ λ‚΄μš©μ„ μ½μ–΄λ³΄λ‹ˆ The [jpabook.jpashop.Member] and [jpabook.jpashop.domain.Member] entities share the same JPA entity name: [Member] which is not allowed!라고 λ‚˜μ˜€λŠ”λ° Member ν΄λž˜μŠ€κ°€ 두 개둜 μΈμ‹λ˜μ–΄ JPA의 μ—”ν‹°ν‹° 이름이 μ€‘λ³΅λ˜κΈ° λ•Œλ¬Έμ— λΉˆμ„ 생성할 수 μ—†λ‹€λŠ” μ—λŸ¬μ˜€λ‹€. 

 


πŸ€“ 원인 :

  λ§žλ‹€. κ°•μ˜μ—μ„œλŠ” jpashop λ””λ ‰ν„°λ¦¬μ—μ„œ Member 클래슀λ₯Ό λ§Œλ“€κ³  초반 ν…ŒμŠ€νŠΈ 및 μ„€λͺ… μ§„ν–‰ν•œ ν›„ 본격적으둜 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“œλŠ” μ‹€μŠ΅μ„ μ§„ν–‰ν•˜λŠ”λ° μ΄λ•ŒλŠ” domainμ΄λΌλŠ” 디렉터리λ₯Ό λ§Œλ“€κ³  κ·Έ μ•ˆμ— λ‹€λ₯Έ Member 클래슀λ₯Ό λ§Œλ“€μ–΄ μ‹€μŠ΅μ„ μ§„ν–‰ν•œλ‹€. λ‚˜λŠ” κ°•μ˜μ—μ„œ μ§„ν–‰ν•œ λ‚΄μš©μ„ κ·ΈλŒ€λ‘œ 따라 ν–ˆκ³  κ·Έ κ³Όμ •μ—μ„œ Member ν΄λž˜μŠ€κ°€ μ€‘λ³΅μœΌλ‘œ 생겨 좩돌이 생긴 κ²ƒμ΄μ—ˆλ‹€. 그런데 λΆ„λͺ… λ‚˜λŠ” 첫 번째둜 λ§Œλ“  Member 클래슀λ₯Ό μ§€μ› μ—ˆλ‹€. 디렉터리λ₯Ό 확인해 λ³΄λ‹ˆ jpashop ν΄λ”μ—λŠ” Member ν΄λž˜μŠ€κ°€ μ—†μ—ˆλŠ”λ° out ν΄λ”μ—λŠ” 과거에 기둝이 κ·ΈλŒ€λ‘œ 남아 μžˆμ—ˆλ‹€. μ•„λ§ˆ 이것 λ•Œλ¬Έμ— JPAμ—μ„œ 좩돌둜 μΈμ‹ν•œ λ“―ν–ˆλ‹€. μ˜μ†μ„± μ½˜ν…μŠ€νŠΈ μ•ˆμ— 첫 번째둜 λ§Œλ“  Member 클래슀 κ΄€λ ¨ λ‚΄μš©μ΄ μ €μž₯λ˜μ–΄ μžˆλŠ” κ²ƒμ²˜λŸΌ 보인닀. κ·Έλž˜μ„œ λ‚΄κ°€ μ‹œλ„ν•œ 방법은 μΈν…”λ¦¬μ œμ΄μ™€ Gradle의 μΊμ‹œ 및 νžˆμŠ€ν† λ¦¬λ₯Ό μ „λΆ€ μ§€μš°λŠ” κ²ƒμ΄μ—ˆλ‹€.

 

  • μΈν…”λ¦¬μ œμ΄μ˜ 경우 μœ„ 사진과 같이 incalidate Cachesμ—μ„œ λΉŒλ“œ 내역을 μ „λΆ€ μ§€μš°κ³  λ‹€μ‹œ μ‹œμž‘ν•  수 μžˆλ‹€.

 

./gradle clean build
  • Gradle의 κ²½μš°μ—λŠ” μœ„ λͺ…λ Ήμ–΄λ‘œ λΉŒλ“œ 내역을 μ΄ˆκΈ°ν™”ν•˜μ—¬ μž¬λΉŒλ“œλ₯Ό μ§„ν–‰ν•  수 μžˆλ‹€.
  • 그런데 λ‘˜ λ‹€ μ‹€νŒ¨ν–ˆλ‹€.
  • 두 κ³Όμ • λͺ¨λ‘ 진행을 해도 out 폴더 λ‚΄ MemberλŠ” 두 개 κ·ΈλŒ€λ‘œμ˜€λ‹€.

 


πŸš’ ν•΄κ²° :

μ΄λ²ˆμ— μ•Œκ²Œ 된 사싀인데 out ν΄λ”λŠ” μΈν…”λ¦¬μ œμ΄ λΉŒλ“œ μ‹œμ— μ»΄νŒŒμΌν•œ classλ₯Ό μ €μž₯ν•˜λŠ” 폴더이며, build ν΄λ”λŠ” gradle λΉŒλ“œ μ‹œμ— μ»΄νŒŒμΌν•œ classλ₯Ό μ €μž₯ν•˜λŠ” 폴더라고 ν•œλ‹€. μ–΄μ¨Œλ“  λ‚˜λŠ” λ‘˜ λ‹€ μΊμ‹œ λ‚΄μ—­κΉŒμ§€ μ „λΆ€ μ§€μ› λŠ”λ° out 폴더가 κ·ΈλŒ€λ‘œ λ‚¨μ•„μžˆμ—ˆλ‹€. κ·Έλž˜μ„œ κ·Έλƒ₯ out 폴더λ₯Ό μ§€μš°κ³  λ‹€μ‹œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μ‹€ν–‰ν•˜λ‹ˆ..

 

μ§€μ› λ˜ Member 클래슀 λ“± κ³Όκ±° λ‚΄μš©μ΄ μ „λΆ€ 사라지고 μ΅œμ‹  class둜 λ³€κ²½λ˜μ—ˆλ‹€. 또 μŠ€ν”„λ§ λΆ€νŠΈ μ„œλ²„λ„ μ •μƒμ μœΌλ‘œ μž‘λ™λ˜μ—ˆλ‹€. out 폴더λ₯Ό μ§€μš°λ©΄ ν•΄κ²°λ˜λŠ” κ°„λ‹¨ν•œ λ¬Έμ œμ˜€λ‹€.

 

 


πŸ€” 의문점 :

μΈν…”λ¦¬μ œμ΄λ“  Gradle이든 μΊμ‹œ λ‚΄μ—­κΉŒμ§€ λΉŒλ“œ λ‚΄μš©μ„ μ•„μ˜ˆ μ΄ˆκΈ°ν™”ν•΄ λ²„λ ΈλŠ”λ° μ™œ μ•ˆ μ§€μ›Œμ‘Œμ„κΉŒ..?

 

 

 

μ°Έκ³ 

https://gocoder.tistory.com/2307

728x90