woowacourse / tecoble-comments

0 stars 0 forks source link

post/2023-08-16-ObjectOptimisticLockingFailureException/ #114

Open utterances-bot opened 8 months ago

utterances-bot commented 8 months ago

무한스크롤 기능에서 동시성 이슈 해결하기

안녕하세요. 우아한테크코스 5기 BE…

https://tecoble.techcourse.co.kr/post/2023-08-16-ObjectOptimisticLockingFailureException/?utterances=fbcb5cbaab00658da7e14464%2FFEzxpi2ziMa41ZbgtFHX%2BmvwKpxsGg51A%2BIbQ8rHU9JYOG3%2BMc88s1t8jsxdGBG7TZX4ZNS9eXX6Tr6zu0342%2FOKd82J3bnVS2p%2FnUvhoNCkvDZ4JM%2BaY2XyRY%3D

hyeonss0417 commented 8 months ago

조회 요청이 동시에 들어와 동일한 데이터를 삭제하려고 할 때 StaleObjectStateException 에러가 발생하여 재시도를 통해서 롤백문제를 해결하셨다고 했는데요.

UnViewedCafe 테이블에서 실제 row를 삭제하는 hard delete가 아닌 is_deleted 컬럼을 추가해 제거 여부를 확인하는 방식으로 구조를 변경한다면 변경하려는 엔티티 수와 변경된 엔티티의 수가 항상 일치할테니 StaleObjectStateException 에러를 방지할 수 있지 않을까 싶네요.