Issue: PropertyReferenceException 발생

개선 전 JPA가 ForUpdate를 예약어가 아닌 필드명으로 인식하여, AuctionOrder 엔티티 내 auctionId 객체의 forUpdate 필드를 찾으려 시도하다 실패.

public interface AuctionOrderRepository extends JpaRepository<AuctionOrder, Long> {
    // 에러 발생: auctionId.forUpdate 프로퍼티를 찾을 수 없음
    Optional<AuctionOrder> findByAuctionIdForUpdate(Long auctionId);
}

개선 후 @Query를 통해 쿼리를 직접 지정함으로써 메서드 이름은 단순 식별자로만 사용됨. 네이밍 제약에서 벗어나고 가독성 확보.

public interface AuctionOrderRepository extends JpaRepository<AuctionOrder, Long> {
    // 명시적 쿼리 작성으로 파싱 에러 방지 + 락 적용
    @Lock(LockModeType.PESSIMISTIC_WRITE)
    @Query("SELECT ao FROM AuctionOrder ao WHERE ao.auctionId = :auctionId")
    Optional<AuctionOrder> findByAuctionIdForUpdate(@Param("auctionId") Long auctionId);
}