Skip to content

Commit 038e6bd

Browse files
committed
(TP-111) feat: add Queries with LEFT JOINs to ReservationRepository
1 parent 055f9db commit 038e6bd

1 file changed

Lines changed: 40 additions & 1 deletion

File tree

rentplace/src/main/java/kattsyn/dev/rentplace/repositories/ReservationRepository.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,50 @@
22

33
import kattsyn.dev.rentplace.entities.Reservation;
44
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.data.jpa.repository.Query;
6+
import org.springframework.data.repository.query.Param;
57

68
import java.util.List;
9+
import java.util.Optional;
710

811
public interface ReservationRepository extends JpaRepository<Reservation, Long> {
912

10-
List<Reservation> findAllByRenterEmail(String email);
13+
@Query("""
14+
SELECT DISTINCT r from Reservation r
15+
LEFT JOIN FETCH r.property p
16+
LEFT JOIN FETCH r.renter
17+
LEFT JOIN FETCH p.images
18+
LEFT JOIN FETCH p.owner
19+
LEFT JOIN FETCH p.facilities
20+
LEFT JOIN FETCH p.categories
21+
"""
22+
)
23+
List<Reservation> findAllWithRelations();
24+
25+
@Query("""
26+
SELECT DISTINCT r from Reservation r
27+
LEFT JOIN FETCH r.property p
28+
LEFT JOIN FETCH r.renter
29+
LEFT JOIN FETCH p.images
30+
LEFT JOIN FETCH p.owner
31+
LEFT JOIN FETCH p.facilities
32+
LEFT JOIN FETCH p.categories
33+
WHERE r.renter.email = :email
34+
"""
35+
)
36+
List<Reservation> findAllByRenterEmail(@Param("email") String email);
37+
38+
@Query("""
39+
SELECT DISTINCT r from Reservation r
40+
LEFT JOIN FETCH r.property p
41+
LEFT JOIN FETCH r.renter
42+
LEFT JOIN FETCH p.images
43+
LEFT JOIN FETCH p.owner
44+
LEFT JOIN FETCH p.facilities
45+
LEFT JOIN FETCH p.categories
46+
WHERE r.reservationId = :reservationId
47+
"""
48+
)
49+
Optional<Reservation> findById(@Param("reservationId") long reservationId);
1150

1251
}

0 commit comments

Comments
 (0)