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/30 20:14:13 UTC

[juneau-petstore] 12/31: spring data added

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 d40d8996a926c682f4368954b6b9e06288717e56
Author: rasa <fi...@gmail.com>
AuthorDate: Sat Oct 12 10:29:48 2019 +0300

    spring data added
---
 juneau-petstore-server/pom.xml                     |  6 +++-
 .../main/java/org/apache/juneau/petstore/App.java  |  2 ++
 .../petstore/repository/OrderRepository.java       | 10 ++++++
 .../juneau/petstore/repository/PetRepository.java  | 10 ++++++
 .../juneau/petstore/repository/UserRepository.java | 14 ++++++++
 .../juneau/petstore/service/PetStoreService.java   | 42 ++++++++++++++--------
 .../src/main/resources/META-INF/persistence.xml    |  2 +-
 7 files changed, 70 insertions(+), 16 deletions(-)

diff --git a/juneau-petstore-server/pom.xml b/juneau-petstore-server/pom.xml
index 362f799..8ec5361 100644
--- a/juneau-petstore-server/pom.xml
+++ b/juneau-petstore-server/pom.xml
@@ -95,7 +95,11 @@
 		    <artifactId>xml-apis</artifactId>
 		    <version>${xml.apis.version}</version>
 		</dependency>
-
+        <dependency>
+		 <groupId>org.springframework.boot</groupId>
+		 <artifactId>spring-boot-starter-data-jpa</artifactId>
+		  <version>${springframework.version}</version>
+	    </dependency>
     </dependencies>
 
     <build>
diff --git a/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/App.java b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/App.java
index e79b507..b26eba7 100644
--- a/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/App.java
+++ b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/App.java
@@ -15,11 +15,13 @@ package org.apache.juneau.petstore;
 import org.apache.juneau.rest.springboot.JuneauRestInitializer;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 
 /**
  * Entry point for PetStore application.
  */
 @SpringBootApplication
+@EnableJpaRepositories(basePackages = "org.apache.juneau.petstore")
 @SuppressWarnings("javadoc")
 public class App {
 
diff --git a/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/OrderRepository.java b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/OrderRepository.java
new file mode 100644
index 0000000..7fd1545
--- /dev/null
+++ b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/OrderRepository.java
@@ -0,0 +1,10 @@
+package org.apache.juneau.petstore.repository;
+
+import org.apache.juneau.petstore.dto.Order;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface OrderRepository  extends JpaRepository <Order, Long>{
+
+}
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
new file mode 100644
index 0000000..fd32831
--- /dev/null
+++ b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/PetRepository.java
@@ -0,0 +1,10 @@
+package org.apache.juneau.petstore.repository;
+
+import org.apache.juneau.petstore.dto.Pet;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface PetRepository extends JpaRepository <Pet, Long> {
+
+}
diff --git a/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/UserRepository.java b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/UserRepository.java
new file mode 100644
index 0000000..76948ea
--- /dev/null
+++ b/juneau-petstore-server/src/main/java/org/apache/juneau/petstore/repository/UserRepository.java
@@ -0,0 +1,14 @@
+package org.apache.juneau.petstore.repository;
+
+
+
+import org.apache.juneau.petstore.dto.User;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface UserRepository  extends JpaRepository <User, Long>{
+	
+	User findByUsername(String username);
+	Long deleteByUsername(String username);
+}
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 ac83c4c..3e45a30 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
@@ -22,8 +22,15 @@ import javax.persistence.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.petstore.dto.*;
-import org.apache.juneau.pojotools.*;
-import org.apache.juneau.pojotools.SearchArgs;
+import org.apache.juneau.petstore.repository.OrderRepository;
+import org.apache.juneau.petstore.repository.PetRepository;
+import org.apache.juneau.petstore.repository.UserRepository;
+//import org.apache.juneau.pojotools.*;
+//import org.apache.juneau.pojotools.SearchArgs;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+
 
 /**
  * Pet store database application.
@@ -37,6 +44,15 @@ import org.apache.juneau.pojotools.SearchArgs;
  */
 public class PetStoreService extends AbstractPersistenceService {
 
+	
+	@Autowired
+	private PetRepository petRepository;
+	
+	@Autowired
+	private UserRepository userRepository;
+	
+	@Autowired
+	private OrderRepository orderRepository;
 	//-----------------------------------------------------------------------------------------------------------------
 	// Initialization methods.
 	//-----------------------------------------------------------------------------------------------------------------
@@ -104,7 +120,7 @@ public class PetStoreService extends AbstractPersistenceService {
 	 * @throws IdNotFound If pet was not found.
 	 */
 	public Pet getPet(long id) throws IdNotFound {
-		return find(Pet.class, id);
+		return petRepository.getOne(id);
 	}
 
 	/**
@@ -115,7 +131,7 @@ public class PetStoreService extends AbstractPersistenceService {
 	 * @throws IdNotFound If order was not found.
 	 */
 	public Order getOrder(long id) throws IdNotFound {
-		return find(Order.class, id);
+		return orderRepository.getOne(id);
 	}
 
 	/**
@@ -128,7 +144,7 @@ public class PetStoreService extends AbstractPersistenceService {
 	 */
 	public User getUser(String username) throws InvalidUsername, IdNotFound  {
 		assertValidUsername(username);
-		return find(User.class, username);
+		return userRepository.findByUsername(username);
 	}
 
 	/**
@@ -137,7 +153,7 @@ public class PetStoreService extends AbstractPersistenceService {
 	 * @return All pets in the database.
 	 */
 	public List<Pet> getPets() {
-		return query("select X from PetstorePet X", Pet.class, (SearchArgs)null, (PageArgs)null);
+		return petRepository.findAll();
 	}
 
 	/**
@@ -146,7 +162,7 @@ public class PetStoreService extends AbstractPersistenceService {
 	 * @return All orders in the database.
 	 */
 	public List<Order> getOrders() {
-		return query("select X from PetstoreOrder X", Order.class, (SearchArgs)null, (PageArgs)null);
+		return orderRepository.findAll();
 	}
 
 	/**
@@ -155,7 +171,7 @@ public class PetStoreService extends AbstractPersistenceService {
 	 * @return All users in the database.
 	 */
 	public List<User> getUsers() {
-		return query("select X from PetstoreUser X", User.class, (SearchArgs)null, (PageArgs)null);
+		return userRepository.findAll();
 	}
 
 	/**
@@ -165,6 +181,7 @@ public class PetStoreService extends AbstractPersistenceService {
 	 * @return a new {@link Pet} object.
 	 */
 	public Pet create(CreatePet c) {
+		
 		return merge(new Pet().status(PetStatus.AVAILABLE).apply(c));
 	}
 
@@ -233,8 +250,7 @@ public class PetStoreService extends AbstractPersistenceService {
 	 * @throws IdNotFound Pet was not found.
 	 */
 	public void removePet(long id) throws IdNotFound {
-		EntityManager em = getEntityManager();
-		remove(em, find(em, Pet.class, id));
+		petRepository.deleteById(id);
 	}
 
 	/**
@@ -244,8 +260,7 @@ public class PetStoreService extends AbstractPersistenceService {
 	 * @throws IdNotFound Order was not found.
 	 */
 	public void removeOrder(long id) throws IdNotFound {
-		EntityManager em = getEntityManager();
-		remove(em, find(em, Order.class, id));
+		orderRepository.deleteById(id);
 	}
 
 	/**
@@ -255,8 +270,7 @@ public class PetStoreService extends AbstractPersistenceService {
 	 * @throws IdNotFound User was not found.
 	 */
 	public void removeUser(String username) throws IdNotFound {
-		EntityManager em = getEntityManager();
-		remove(em, find(em, User.class, username));
+		userRepository.deleteByUsername(username);
 	}
 
 	/**
diff --git a/juneau-petstore-server/src/main/resources/META-INF/persistence.xml b/juneau-petstore-server/src/main/resources/META-INF/persistence.xml
index 8db6a41..74ea1a9 100644
--- a/juneau-petstore-server/src/main/resources/META-INF/persistence.xml
+++ b/juneau-petstore-server/src/main/resources/META-INF/persistence.xml
@@ -26,7 +26,7 @@
 			<property name="javax.persistence.jdbc.user" value="" />
 			<property name="javax.persistence.jdbc.password" value="" />
 			<property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect" />
-			<property name="hibernate.hbm2ddl.auto" value="create-drop" />
+			<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
 			<property name="show_sql" value="true" />
 			<property name="hibernate.temp.use_jdbc_metadata_defaults" value="false" />
 		</properties>