You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2019/10/14 13:54:34 UTC

[juneau-petstore] 15/22: service find by tags and status

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 <fi...@gmail.com>
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);
 	}
 
 	/**