Skip to content

Commit eb67c74

Browse files
committed
feat(user-repo): 사용자 요약 페이지 조회/검색/정렬 지원
1 parent 37f1a97 commit eb67c74

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/main/java/inha/gdgoc/domain/user/repository/UserRepository.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
package inha.gdgoc.domain.user.repository;
22

3+
import inha.gdgoc.domain.user.dto.response.UserSummaryResponse;
34
import inha.gdgoc.domain.user.entity.User;
45
import inha.gdgoc.domain.user.enums.TeamType;
56
import inha.gdgoc.domain.user.enums.UserRole;
7+
import org.jetbrains.annotations.NotNull;
8+
import org.springframework.data.domain.Page;
9+
import org.springframework.data.domain.Pageable;
610
import org.springframework.data.jpa.repository.JpaRepository;
11+
import org.springframework.data.jpa.repository.Query;
12+
import org.springframework.data.repository.query.Param;
713
import org.springframework.stereotype.Repository;
814

915
import java.util.Collection;
@@ -29,4 +35,15 @@ public interface UserRepository extends JpaRepository<User, Long>, UserRepositor
2935

3036
// 필요 시: 특정 팀 전체 멤버(역할 무관)
3137
List<User> findByTeam(TeamType team);
38+
39+
@Query("""
40+
select new inha.gdgoc.domain.user.dto.response.UserSummaryResponse(
41+
u.id, u.name, u.major, u.studentId, u.email, u.userRole, u.team
42+
)
43+
from User u
44+
where (:q is null or :q = '' or u.name like concat('%', :q, '%'))
45+
""")
46+
Page<UserSummaryResponse> findSummaries(@Param("q") String q, Pageable pageable);
47+
48+
@NotNull Optional<User> findById(@NotNull Long id);
3249
}

0 commit comments

Comments
 (0)