diff --git a/repository/pom.xml b/repository/pom.xml
index a950d3abb..ddd69942f 100644
--- a/repository/pom.xml
+++ b/repository/pom.xml
@@ -15,5 +15,20 @@
junit
test
+
+ org.springframework.data
+ spring-data-jpa
+ 1.7.1.RELEASE
+
+
+ org.hibernate
+ hibernate-entitymanager
+ 5.0.0.CR2
+
+
+ org.postgresql
+ postgresql
+ 9.4-1200-jdbc4
+
diff --git a/repository/src/main/java/com/iluwatar/App.java b/repository/src/main/java/com/iluwatar/App.java
index 9d4f497d2..0408cd7c2 100644
--- a/repository/src/main/java/com/iluwatar/App.java
+++ b/repository/src/main/java/com/iluwatar/App.java
@@ -1,8 +1,52 @@
package com.iluwatar;
+import java.util.List;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+/**
+ * Standalone application with Spring Data JPA, Hibernate and Maven
+ *
+ * @author DevCrumb.com
+ */
public class App {
-
- public static void main( String[] args ) {
- System.out.println( "Hello World!" );
- }
+ public static void main(String[] args) {
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
+ "applicationContext.xml");
+ PersonDao dao = context.getBean(PersonDao.class);
+
+ Person peter = new Person("Peter", "Sagan");
+ Person nasta = new Person("Nasta", "Kuzminova");
+
+ // Add new Person records
+ dao.save(peter);
+ dao.save(nasta);
+
+ // Count Person records
+ System.out.println("Count Person records: " + dao.count());
+
+ // Print all records
+ List persons = (List) dao.findAll();
+ for (Person person : persons) {
+ System.out.println(person);
+ }
+
+ // Find Person by surname
+ System.out.println("Find by surname 'Sagan': " + dao.findBySurname("Sagan"));
+
+ // Update Person
+ nasta.setName("Barbora");
+ nasta.setSurname("Spotakova");
+ dao.save(nasta);
+
+ System.out.println("Find by id 2: " + dao.findOne(2L));
+
+ // Remove record from Person
+ dao.delete(2L);
+
+ // And finally count records
+ System.out.println("Count Person records: " + dao.count());
+
+ context.close();
+ }
}
diff --git a/repository/src/main/java/com/iluwatar/Person.java b/repository/src/main/java/com/iluwatar/Person.java
new file mode 100644
index 000000000..bd2ebf43a
--- /dev/null
+++ b/repository/src/main/java/com/iluwatar/Person.java
@@ -0,0 +1,59 @@
+package com.iluwatar;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+/**
+ * Person entity
+ *
+ * @author DevCrumb.com
+ */
+@Entity
+public class Person {
+
+ @Id
+ @GeneratedValue
+ private Long id;
+ private String name;
+ private String surname;
+
+ public Person() {
+ }
+
+ public Person(String name, String surname) {
+ this.name = name;
+ this.surname = surname;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getSurname() {
+ return surname;
+ }
+
+ public void setSurname(String surname) {
+ this.surname = surname;
+ }
+
+ @Override
+ public String toString() {
+ return "Person [id=" + id + ", name=" + name + ", surname=" + surname
+ + "]";
+ }
+
+}
diff --git a/repository/src/main/java/com/iluwatar/PersonDao.java b/repository/src/main/java/com/iluwatar/PersonDao.java
new file mode 100644
index 000000000..66b625782
--- /dev/null
+++ b/repository/src/main/java/com/iluwatar/PersonDao.java
@@ -0,0 +1,17 @@
+package com.iluwatar;
+
+import java.util.List;
+
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Person dao interface
+ *
+ * @author DevCrumb.com
+ */
+@Repository
+public interface PersonDao extends CrudRepository {
+
+ public List findBySurname(String surname);
+}
diff --git a/repository/src/main/resources/META-INF/persistence.xml b/repository/src/main/resources/META-INF/persistence.xml
new file mode 100644
index 000000000..4c1478e55
--- /dev/null
+++ b/repository/src/main/resources/META-INF/persistence.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/repository/src/main/resources/applicationContext.xml b/repository/src/main/resources/applicationContext.xml
new file mode 100644
index 000000000..c7c4179d2
--- /dev/null
+++ b/repository/src/main/resources/applicationContext.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+ org.postgresql.Driver
+
+
+ jdbc:postgresql://localhost:5432/postgres
+
+
+ postgres
+
+
+ ile666
+
+
+
+
+
+
+
+
+
+
+
+ org.hibernate.dialect.PostgreSQLDialect
+ false
+ false
+ create
+
+
+
+
+
+
+
+
+
\ No newline at end of file