From 216972df8683ed6e49aa2f05b54573d898d41dc7 Mon Sep 17 00:00:00 2001 From: Ros Date: Tue, 3 Oct 2023 16:46:21 +0100 Subject: [PATCH] Order Item and Order Repository --- .../repository/OrderItemRepository.java | 9 +++++++++ .../bookstore/repository/OrderRepository.java | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/main/java/spring/boot/bookstore/repository/OrderItemRepository.java create mode 100644 src/main/java/spring/boot/bookstore/repository/OrderRepository.java diff --git a/src/main/java/spring/boot/bookstore/repository/OrderItemRepository.java b/src/main/java/spring/boot/bookstore/repository/OrderItemRepository.java new file mode 100644 index 0000000..efc0ac5 --- /dev/null +++ b/src/main/java/spring/boot/bookstore/repository/OrderItemRepository.java @@ -0,0 +1,9 @@ +package spring.boot.bookstore.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; +import spring.boot.bookstore.model.OrderItem; + +@Repository +public interface OrderItemRepository extends JpaRepository { +} diff --git a/src/main/java/spring/boot/bookstore/repository/OrderRepository.java b/src/main/java/spring/boot/bookstore/repository/OrderRepository.java new file mode 100644 index 0000000..eec5812 --- /dev/null +++ b/src/main/java/spring/boot/bookstore/repository/OrderRepository.java @@ -0,0 +1,19 @@ +package spring.boot.bookstore.repository; + +import java.util.List; +import java.util.Optional; +import org.springframework.data.jpa.repository.EntityGraph; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; +import spring.boot.bookstore.model.Order; + +@Repository +public interface OrderRepository extends JpaRepository { + @Query("SELECT o FROM Order o LEFT JOIN FETCH o.orderItems" + + " LEFT JOIN FETCH o.user u WHERE u.id = :userId") + List findAllOrders(long userId); + + @EntityGraph(attributePaths = "orderItems") + Optional findById(Long id); +}