Skip to content

Commit 8aa467b

Browse files
committed
[feat] Application 조회에 락 적용
1 parent 65449da commit 8aa467b

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

src/main/java/ceos/backend/domain/application/helper/ApplicationHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,9 @@ public void sendSlackUnableReasonMessage(
4949
}
5050

5151
public Application getApplicationById(Long id) {
52+
5253
return applicationRepository
53-
.findById(id)
54+
.findByIdWithPessimisticLock(id)
5455
.orElseThrow(
5556
() -> {
5657
throw ApplicantNotFound.EXCEPTION;

src/main/java/ceos/backend/domain/application/repository/ApplicationRepository.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@
55
import ceos.backend.domain.application.domain.Pass;
66
import ceos.backend.global.common.entity.Part;
77
import java.util.Optional;
8+
9+
import jakarta.persistence.LockModeType;
810
import org.springframework.data.domain.Page;
911
import org.springframework.data.domain.PageRequest;
1012
import org.springframework.data.jpa.repository.JpaRepository;
13+
import org.springframework.data.jpa.repository.Lock;
1114
import org.springframework.data.jpa.repository.Query;
1215
import org.springframework.data.repository.query.Param;
1316

@@ -63,4 +66,10 @@ Page<Application> findAllByPartAndDocumentPassAndFinalPass(
6366
@Param("convertedDocPass") Pass convertedDocPass,
6467
@Param("convertedFinalPass") Pass convertedFinalPass,
6568
PageRequest pageRequest);
69+
70+
71+
@Lock(LockModeType.PESSIMISTIC_WRITE)
72+
@Query("select a from Application a where a.id = :id")
73+
Optional<Application> findByIdWithPessimisticLock(@Param("id") Long id);
74+
6675
}

0 commit comments

Comments
 (0)