Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.example.umc9th2.domain.member.repository;

import com.example.umc9th2.domain.member.entity.Member;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.Optional;

public interface MemberRepository extends JpaRepository<Member, Long> {

// 회원 정보 + 리뷰 목록 함께 조회 (MyPage)
@Query("SELECT m FROM Member m LEFT JOIN FETCH m.reviewList r WHERE m.id = :memberId")
Optional<Member> findWithReviewsById(@Param("memberId") Long memberId);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.example.umc9th2.domain.mission.repository;

import com.example.umc9th2.domain.mission.entity.mapping.MemberMission;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

public interface MemberMissionRepository extends JpaRepository<MemberMission, Long> {

// 진행 상태(완료/미완료)별로 미션 조회
@Query("SELECT mm FROM MemberMission mm " +
"JOIN FETCH mm.mission m " +
"JOIN FETCH m.store s " +
"WHERE mm.member.id = :memberId ")
Page<MemberMission> findByMemberAndStatus(
@Param("memberId") Long memberId,
@Param("isComplete") Boolean isComplete,
Pageable pageable
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.example.umc9th2.domain.mission.repository;

import com.example.umc9th2.domain.mission.entity.Mission;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

public interface MissionRepository extends JpaRepository<Mission, Long> {

// 현재 지역 기준으로 마감 안 된 미션 목록
@Query("SELECT m FROM Mission m " +
"JOIN FETCH m.store s " +
"JOIN s.location l " +
"WHERE l.name = :locationName " +
"AND m.deadline > CURRENT_DATE")
Page<Mission> findAvailableMissionsByLocation(
@Param("locationName") String locationName,
Pageable pageable
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.example.umc9th2.domain.review.repository;

import com.example.umc9th2.domain.review.entity.Review;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;

public interface ReviewRepository extends JpaRepository<Review, Long> {

// 특정 가게에 등록된 리뷰 목록 조회
@Query("SELECT r FROM Review r WHERE r.store.id = :storeId ORDER BY r.createdAt DESC")
List<Review> findByStoreId(@Param("storeId") Long storeId);

// 특정 회원이 작성한 리뷰 목록 조회
@Query("SELECT r FROM Review r WHERE r.member.id = :memberId ORDER BY r.createdAt DESC")
List<Review> findByMemberId(@Param("memberId") Long memberId);
}