본문 바로가기

Spring boot

Spring Data JPA Illegal attempt to set lock mode for a native query

반응형

Illegal attempt to set lock mode for a native query라는 예외가 발생하고 있습니다. 이는 Spring Data JPA에서 Native Query에 비관적 락을 적용할 수 없다는 의미입니다. 비관적 락을 사용하려면 JPQL을 사용해야 합니다.

다음과 같이 @Query 어노테이션을 JPQL로 변경해 보세요

TicketRepository 수정

@Repository 
public interface TicketRepository extends JpaRepository<Ticket, Long> { 
	@Lock(LockModeType.PESSIMISTIC_WRITE) 
	@Query("SELECT t FROM Ticket t WHERE t.id = :id") 
	Optional<Ticket> findByIdWithLock(@Param("id") Long id); 
}

 

반응형

'Spring boot' 카테고리의 다른 글

RedisTemplate.opsForValue().decremet()  (0) 2024.08.06
Spring Redis 분산 락 사용법  (0) 2024.08.05
Spring 끄적끄적(5) @Transactional , Stream  (0) 2024.08.02
쿠키,세션,토큰,JWT  (0) 2024.07.31
@NotNull vs @NotEmpty  (0) 2024.07.29