Step3-kakao-tech-campus / Team3_BE

[카테캠 1기] 번개 지향 볼링 모집 커뮤니티 "번개볼링"의 백엔드 서버입니다.
2 stars 4 forks source link

Duplicate entry '김볼링' for key 'user_tb.name' unkown 에러 발생 #102

Closed jagaldol closed 10 months ago

jagaldol commented 11 months ago

Description

유저 이름 업데이트에 예외 처리가 안되어있습니다.

2023-10-31T07:51:49.780Z ERROR 171578 --- [io-8080-exec-53] o.h.engine.jdbc.spi.SqlExceptionHelper   : Duplicate entry '김볼링' for key 'user_tb.name'
2023-10-31T07:51:49.794Z ERROR 171578 --- [io-8080-exec-53] c.b.s._.errors.GlobalExceptionHandler    : unknown 에러 발생

org.springframework.dao.DataIntegrityViolationException: could not execute statement [Duplicate entry '김볼링' for key 'user_tb.name'] [update user_tb set created_at=?,district_id=?,email=?,img_url=?,name=?,password=?,result_image_url=?,role=? where id=?]; SQL [update user_tb set created_at=?,district_id=?,email=?,img_url=?,name=?,password=?,result_image_url=?,role=? where id=?]; constraint [user_tb.name]
        at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:269) ~[spring-orm-6.0.11.jar!/:6.0.11]
        at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229) ~[spring-orm-6.0.11.jar!/:6.0.11]
        at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:565) ~[spring-orm-6.0.11.jar!/:6.0.11]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:743) ~[spring-tx-6.0.11.jar!/:6.0.11]

업데이트 할 때 userRepository에 먼저 존재하는지 확인하고 존재하면 badrequest를 던져야하겠습니다.

현재로도 unique 키 제약으로 rollback이 일어나지만 unkown 에러로 500 에러를 주는건 좋지 않습니다.

sql쪽도 try catch로 감싸는게 좋겠습니다.

Tasks