This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau-petstore.git

commit 30759e60ba76fad511538483e2b202a72be7396e
Author: rasa <[email protected]>
AuthorDate: Sun Oct 13 20:30:23 2019 +0300

    service find by tags and status
---
 .../juneau/petstore/repository/PetRepository.java  | 11 +++++-
 .../juneau/petstore/service/PetStoreService.java   | 42 ++++++++--------------
 2 files changed, 24 insertions(+), 29 deletions(-)

diff --git 
a/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/PetRepository.java
 
b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/PetRepository.java
index fd32831..49e125b 100644
--- 
a/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/PetRepository.java
+++ 
b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/PetRepository.java
@@ -1,10 +1,19 @@
 package org.apache.juneau.petstore.repository;
 
+import java.util.List;
+
 import org.apache.juneau.petstore.dto.Pet;
+import org.apache.juneau.petstore.dto.PetStatus;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 @Repository
 public interface PetRepository extends JpaRepository <Pet, Long> {
-
+       @Query("select X from PetstorePet X where X.tags in :tags")
+         List<Pet> findByTags(@Param("tags") String[] tags);
+       
+       @Query("select X from PetstorePet X where X.status in :status")
+         List<Pet> findByStatus(@Param("status") PetStatus[] status);
 }
diff --git 
a/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/service/PetStoreService.java
 
b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/service/PetStoreService.java
index 2300d8c..44b66e4 100644
--- 
a/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/service/PetStoreService.java
+++ 
b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/service/PetStoreService.java
@@ -17,7 +17,6 @@ import static java.text.MessageFormat.*;
 import java.io.*;
 import java.util.*;
 
-import javax.persistence.*;
 
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
@@ -42,7 +41,7 @@ import org.springframework.beans.factory.annotation.Autowired;
  *     <li class='extlink'>{@source}
  * </ul>
  */
-public class PetStoreService extends AbstractPersistenceService {
+public class PetStoreService {
 
        
        @Autowired
@@ -67,43 +66,36 @@ public class PetStoreService extends 
AbstractPersistenceService {
         */
        public PetStoreService initDirect(PrintWriter w) throws ParseException, 
IOException {
 
-               EntityManager em = getEntityManager();
-               EntityTransaction et = em.getTransaction();
+               
                JsonParser parser = JsonParser.create().build();
 
-               et.begin();
-
-               for (Pet x : em.createQuery("select X from PetstorePet X", 
Pet.class).getResultList()) {
-                       em.remove(x);
+               for (Pet x : petRepository.findAll()) {
+                       petRepository.delete(x);
                        w.println(format("Deleted pet:  id={0}", x.getId()));
                }
-               for (Order x : em.createQuery("select X from PetstoreOrder X", 
Order.class).getResultList()) {
-                       em.remove(x);
+               for (Order x : orderRepository.findAll()) {
+                       orderRepository.delete(x);
                        w.println(format("Deleted order:  id={0}", x.getId()));
                }
-               for (User x : em.createQuery("select X from PetstoreUser X", 
User.class).getResultList()) {
-                       em.remove(x);
+               for (User x : userRepository.findAll()) {
+                       userRepository.delete(x);
                        w.println(format("Deleted user:  username={0}", 
x.getUsername()));
                }
-
-               et.commit();
-               et.begin();
+               
 
                for (Pet x : parser.parse(getStream("init/Pets.json"), 
Pet[].class)) {
-                       x = em.merge(x);
+                       petRepository.save(x);
                        w.println(format("Created pet:  id={0}, name={1}", 
x.getId(), x.getName()));
                }
                for (Order x : parser.parse(getStream("init/Orders.json"), 
Order[].class)) {
-                       x = em.merge(x);
+                       orderRepository.save(x);
                        w.println(format("Created order:  id={0}", x.getId()));
                }
                for (User x: parser.parse(getStream("init/Users.json"), 
User[].class)) {
-                       x = em.merge(x);
+                       userRepository.save(x);
                        w.println(format("Created user:  username={0}", 
x.getUsername()));
                }
 
-               et.commit();
-
                return this;
        }
 
@@ -278,10 +270,7 @@ public class PetStoreService extends 
AbstractPersistenceService {
         * @return Pets with the specified statuses.
         */
        public Collection<Pet> getPetsByStatus(PetStatus[] status) {
-               return getEntityManager()
-                       .createQuery("select X from PetstorePet X where 
X.status in :status", Pet.class)
-                       .setParameter("status", status)
-                       .getResultList();
+               return petRepository.findByStatus(status);
        }
 
        /**
@@ -292,10 +281,7 @@ public class PetStoreService extends 
AbstractPersistenceService {
         * @throws InvalidTag Tag name was invalid.
         */
        public Collection<Pet> getPetsByTags(String[] tags) throws InvalidTag {
-               return getEntityManager()
-                       .createQuery("select X from PetstorePet X where X.tags 
in :tags", Pet.class)
-                       .setParameter("tags", tags)
-                       .getResultList();
+               return petRepository.findByTags(tags);
        }
 
        /**

Reply via email to