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); } /**
