|
1 | 1 | package com.example.SorokinSpringBoot.repositories; |
2 | 2 |
|
| 3 | +import com.example.SorokinSpringBoot.enums.ReservationStatus; |
3 | 4 | import com.example.SorokinSpringBoot.models.ReservationEntity; |
4 | 5 | import org.springframework.data.jpa.repository.JpaRepository; |
| 6 | +import org.springframework.data.jpa.repository.Modifying; |
| 7 | +import org.springframework.data.jpa.repository.Query; |
| 8 | +import org.springframework.data.repository.query.Param; |
| 9 | +import org.springframework.transaction.annotation.Transactional; |
| 10 | + |
| 11 | +import java.time.LocalDate; |
| 12 | +import java.util.List; |
5 | 13 |
|
6 | 14 | public interface ReservationRepository extends JpaRepository<ReservationEntity, Long> { |
7 | 15 |
|
| 16 | + //List<ReservationEntity> findAllByStatusIs(ReservationStatus status); |
| 17 | + |
| 18 | + @Query("select r from ReservationEntity r where r.status = :status") |
| 19 | + List<ReservationEntity> findAllByStatusIs(ReservationStatus status); |
| 20 | + |
| 21 | + @Query("select r from ReservationEntity r where r.roomId = :roomId") |
| 22 | + List<ReservationEntity> findAllByRoomId(@Param("roomId") Long roomId); |
| 23 | + |
| 24 | + @Transactional |
| 25 | + @Modifying |
| 26 | + @Query(""" |
| 27 | + update ReservationEntity r |
| 28 | + set r.userId = :userId, |
| 29 | + r.roomId = :roomId, |
| 30 | + r.startDate = :startDate, |
| 31 | + r.endDate = :endDate, |
| 32 | + r.status = :status |
| 33 | + where r.id = :id |
| 34 | + """) |
| 35 | + int updateAllFields( |
| 36 | + @Param("id") Long id, |
| 37 | + @Param("userId") Long userId, |
| 38 | + @Param("roomId") Long roomId, |
| 39 | + @Param("startDate") LocalDate startDate, |
| 40 | + @Param("endDate") LocalDate endDate, |
| 41 | + @Param("status") ReservationStatus status |
| 42 | + ); |
8 | 43 | } |
0 commit comments