spring boot9 맛슐랭 - 맛집 리뷰 생성을 위한 Repository 구현 맛집 리뷰를 등록하기 위해서는 음식점의 정보, 리뷰에 업로드된 이미지도 DB에 저장되어야 한다. 1. PlaceRepository 해당 장소가 이미 등록되어 있는지 확인하고 그 장소를 반환 받기 위해 위도, 좌표를 사용하였다. public interface PlaceRepository extends JpaRepository { // pos_x와 pos_y값이 모두 일치하는 장소가 있는지 확인 boolean existsByPosXAndPosY(String posX, String posY); // pos_x와 pos_y값이 모두 일치하는 장소 반환 Optional findByPosXAndPosY(String posX, String posY); } 2. UploadImageRepository UploadIma.. 2024. 3. 27. 쇼핑몰 구현 13 - 주문 기능 Order 1. OrderRepository @Repository public interface OrderRepository extends JpaRepository { //특정 회원의 주문을 최신순으로 조회 @Query("select o from Order o "+ "where o.member.email = :email "+ "order by o.createdAt desc" ) Page findAllByMemberEmail(String email, PageRequest pageRequest); //특정 회원의 주문을 가져올 때 배송지 정보도 페치조인으로 가져옴 @Query("select o from Order o join fetch o.delivery d where o.member.email = :ema.. 2024. 2. 23. 쇼핑몰 구현 12 - 리뷰 , Q&A 기능 Review 1. ReviewRepository @Repository public interface ReviewRepository extends JpaRepository { //해당 상품의 모든 리뷰 조회 Page findAllByItemId(Long itemId, PageRequest pageRequest); } 2. ReviewService @Service @RequiredArgsConstructor public class ReviewService { private final ReviewRepository reviewRepository; private final MemberService memberService; private final ItemService itemService; private fi.. 2024. 2. 23. 쇼핑몰 구현 11 - 위시리스트 기능 1. LikeRepository @Repository public interface LikeRepository extends JpaRepository { //회원이 해당 아이템 아이디를 가진 상품에 누른 위시리스트를 취소할 경우 void deleteByMemberEmailAndItemId(String email,Long itemId); //회원이 해당 아이템 아이디를 가진 상품에 위시리스트 버튼을 눌렀는지 확인하기 위해 Boolean existsByMemberEmailAndItemId(String email,Long itemId); //특정 회원이 누른 위시리스트 상품들을 모두 조회 Page findAllByMemberEmail(PageRequest pageRequest,String email); //회.. 2024. 2. 23. 쇼핑몰 구현 10 - 장바구니 기능 1. CartRepository @Repository public interface CartRepository extends JpaRepository { //해당 이메일을 가진 회원의 모든 장바구니를 찾기 위해 List findAllByMemberEmail(String email); //해당 이메일을 가진 회원의 장바구니에 해당 아이디를 가진 아이템이 존재하는지 확인하기 위해 //아이템이 존재할 경우 장바구니에 또 추가하지 않고 수량만 변경 Boolean existsByMemberEmailAndItemId(String email,Long itemId); //해당 이메일을 가진 회원의 장바구니에 해당 아이디를 가진 아이템이 존재한다면 해당 카트 반환 Optional findByMemberEmailAndIt.. 2024. 2. 23. 쇼핑몰 구현 9 - 상품 기능 1. ItemRepository @Repository public interface ItemRepository extends JpaRepository { //상품 생성 시 이름이 중복되는지 체크하기 위해 Boolean existsByName(String name); //상품 검색 시 해당 이름을 포함한 모든 상품을 찾기 위해 Page findAllByNameContains(String name, PageRequest pageRequest); //카테고리로 상품을 찾기 위해 Page findAllByItemCategory(ItemCategory itemCategory,PageRequest pageRequest); } 2. ItemService @Service @RequiredArgsConstructor p.. 2024. 2. 23. 이전 1 2 다음