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