Files

File: src/main/java/com/paymentlink/repository/OrderRepository.java

1 package com.paymentlink.repository;
2
3 import com.paymentlink.model.entity.Order;
4 import org.springframework.data.jpa.repository.JpaRepository;
5 import org.springframework.data.jpa.repository.Query;
6 import org.springframework.data.repository.query.Param;
7 import org.springframework.stereotype.Repository;
8
9 import java.util.List;
10 import java.util.Optional;
11
12 @Repository
13 public interface OrderRepository extends JpaRepository<Order, Long> {
14
15 Optional<Order> findByOrderId(String orderId);
16
17 @Query("SELECT o FROM Order o LEFT JOIN FETCH o.items WHERE o.orderId = :orderId")
18 Optional<Order> findByOrderIdWithItems(@Param("orderId") String orderId);
19
20 @Query("SELECT DISTINCT o FROM Order o LEFT JOIN FETCH o.items ORDER BY o.createdAt DESC")
21 List<Order> findAllWithItems();
22
23 List<Order> findByCustomerEmail(String customerEmail);
24
25 List<Order> findByStatus(String status);
26 }
27
28