@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query(value = "select s from Stock s where s.id = :id")
Stock findByIdWithPessimisticLock(Long id);
org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to provide names for method parameters; Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters
.....
쿼리에 쓸 파라메터를 정확하게 지명해주지 않은 것이 문제였다.
자바도 친절하게 해결 방법을 알려준다. 그리고 인프런에서도 해답을 찾았다.
@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query(value = "select s from Stock s where s.id = :id")
Stock findByIdWithPessimisticLock(@Param("id") Long id);
🗝️ : parameter 앞에 @Param 어노테이션을 사용하여 해결해준다.