From 3494849009b12cd148cf7ae30a67fc4aaca4dee2 Mon Sep 17 00:00:00 2001 From: sjmaple Date: Wed, 7 Feb 2024 11:24:29 +0100 Subject: [PATCH 1/2] Add search functionality --- .../workshop/coffee/repository/SearchRepository.java | 10 +++++++++- src/main/resources/templates/index.html | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/workshop/coffee/repository/SearchRepository.java b/src/main/java/org/workshop/coffee/repository/SearchRepository.java index c425f4e..5e71035 100644 --- a/src/main/java/org/workshop/coffee/repository/SearchRepository.java +++ b/src/main/java/org/workshop/coffee/repository/SearchRepository.java @@ -19,7 +19,15 @@ public class SearchRepository { DataSource dataSource; public List searchProduct (String input) { - return null; + // lowercase the input + var lowerInput = input.toLowerCase(Locale.ROOT); + + // create a query that matches the lowerinput to teh product description or product name + var query = em.createNativeQuery("Select * from Product where lower(description) like '%" + lowerInput + "%' OR lower(product_name) like '%" + lowerInput + "%'", Product.class); + + // get the result list + var resultList = (List) query.getResultList(); + return resultList; } } diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 5e7e707..f83f0ce 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -6,6 +6,11 @@
+ + + + +
From 528edde798b9553da1ac7f3bc7f1da57a2f94cbd Mon Sep 17 00:00:00 2001 From: sjmaple Date: Wed, 7 Feb 2024 11:29:42 +0100 Subject: [PATCH 2/2] Add search functionality --- .../org/workshop/coffee/repository/SearchRepository.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/workshop/coffee/repository/SearchRepository.java b/src/main/java/org/workshop/coffee/repository/SearchRepository.java index 5e71035..6eb530a 100644 --- a/src/main/java/org/workshop/coffee/repository/SearchRepository.java +++ b/src/main/java/org/workshop/coffee/repository/SearchRepository.java @@ -22,8 +22,11 @@ public List searchProduct (String input) { // lowercase the input var lowerInput = input.toLowerCase(Locale.ROOT); - // create a query that matches the lowerinput to teh product description or product name - var query = em.createNativeQuery("Select * from Product where lower(description) like '%" + lowerInput + "%' OR lower(product_name) like '%" + lowerInput + "%'", Product.class); + // create a query using named parameters that matches the lowerinput to the product description or product name + var query = em.createQuery("Select p from Product p where lower(p.description) like :input OR lower(p.productName) like :input", Product.class); + + // set the input parameter + query.setParameter("input", "%" + lowerInput + "%"); // get the result list var resultList = (List) query.getResultList();