Skip to content

Commit 055f9db

Browse files
committed
(TP-111) feat: add Queries with LEFT JOINs to PropertyRepository
1 parent 866e758 commit 055f9db

1 file changed

Lines changed: 35 additions & 3 deletions

File tree

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

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,52 @@
44
import kattsyn.dev.rentplace.entities.Property;
55
import org.springframework.data.jpa.repository.JpaRepository;
66
import org.springframework.data.jpa.repository.Query;
7+
import org.springframework.data.repository.query.Param;
78

89
import java.util.List;
10+
import java.util.Optional;
911

1012
public interface PropertyRepository extends JpaRepository<Property, Long> {
1113

1214
@Query("""
1315
SELECT DISTINCT p
1416
FROM Property p
15-
LEFT JOIN FETCH p.categories
16-
LEFT JOIN FETCH p.facilities
17+
LEFT JOIN FETCH p.owner o
18+
LEFT JOIN FETCH p.categories c
19+
LEFT JOIN FETCH p.facilities f
1720
LEFT JOIN FETCH p.images
21+
LEFT JOIN FETCH o.image
22+
LEFT JOIN FETCH c.image
23+
LEFT JOIN FETCH f.image
1824
""")
1925
List<Property> findAllWithRelations();
2026

21-
List<Property> findAllByOwnerEmail(String email);
27+
@Query("""
28+
SELECT DISTINCT p
29+
FROM Property p
30+
LEFT JOIN FETCH p.owner o
31+
LEFT JOIN FETCH p.categories c
32+
LEFT JOIN FETCH p.facilities f
33+
LEFT JOIN FETCH p.images
34+
LEFT JOIN FETCH o.image
35+
LEFT JOIN FETCH c.image
36+
LEFT JOIN FETCH f.image
37+
WHERE p.owner.email = :email
38+
""")
39+
List<Property> findAllByOwnerEmail(@Param("email") String email);
40+
41+
@Query("""
42+
SELECT DISTINCT p
43+
FROM Property p
44+
LEFT JOIN FETCH p.owner o
45+
LEFT JOIN FETCH p.categories c
46+
LEFT JOIN FETCH p.facilities f
47+
LEFT JOIN FETCH p.images
48+
LEFT JOIN FETCH o.image
49+
LEFT JOIN FETCH c.image
50+
LEFT JOIN FETCH f.image
51+
WHERE p.propertyId = :id
52+
""")
53+
Optional<Property> findById(@Param("id") long id);
2254

2355
}

0 commit comments

Comments
 (0)