From 3ae68f30c0e66702ddef666b4642321993e67eca Mon Sep 17 00:00:00 2001 From: Don Strawsburg Date: Thu, 4 Dec 2025 12:39:02 -0500 Subject: [PATCH] added more namedqueries --- .../goforward/ballistic/model/Product.java | 19 +++++++++++++++++++ .../ballistic/repos/ProductRepository.java | 17 ++++++++++------- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/main/java/group/goforward/ballistic/model/Product.java b/src/main/java/group/goforward/ballistic/model/Product.java index 90cbbaa..816099f 100644 --- a/src/main/java/group/goforward/ballistic/model/Product.java +++ b/src/main/java/group/goforward/ballistic/model/Product.java @@ -14,6 +14,25 @@ import group.goforward.ballistic.model.ProductConfiguration; @Entity @Table(name = "products") +@NamedQuery(name="Products.findByPlatformWithBrand", query= "" + + "SELECT p FROM Product p" + + " JOIN FETCH p.brand b" + + " WHERE p.platform = :platform" + + " AND p.deletedAt IS NULL") + +@NamedQuery(name="Product.findByPlatformAndPartRoleInWithBrand", query= "" + + "SELECT p FROM Product p JOIN FETCH p.brand b" + + " WHERE p.platform = :platform" + + " AND p.partRole IN :roles" + + " AND p.deletedAt IS NULL") + +@NamedQuery(name="Product.findProductsbyBrandByOffers", query="" + + " SELECT DISTINCT p FROM Product p" + + " LEFT JOIN FETCH p.brand b" + + " LEFT JOIN FETCH p.offers o" + + " WHERE p.platform = :platform" + + " AND p.deletedAt IS NULL") + public class Product { @Id diff --git a/src/main/java/group/goforward/ballistic/repos/ProductRepository.java b/src/main/java/group/goforward/ballistic/repos/ProductRepository.java index 24f821c..ad91c1e 100644 --- a/src/main/java/group/goforward/ballistic/repos/ProductRepository.java +++ b/src/main/java/group/goforward/ballistic/repos/ProductRepository.java @@ -33,14 +33,17 @@ public interface ProductRepository extends JpaRepository { """) List findByPlatformWithBrand(@Param("platform") String platform); +@Query(name="Products.findByPlatformWithBrand") +List findByPlatformWithBrandNQ(@Param("platform") String platform); + @Query(""" - SELECT p - FROM Product p - JOIN FETCH p.brand b - WHERE p.platform = :platform - AND p.partRole IN :roles - AND p.deletedAt IS NULL - """) + SELECT p + FROM Product p + JOIN FETCH p.brand b + WHERE p.platform = :platform + AND p.partRole IN :roles + AND p.deletedAt IS NULL + """) List findByPlatformAndPartRoleInWithBrand( @Param("platform") String platform, @Param("roles") List roles