diff --git a/repository/src/main/java/com/iluwatar/App.java b/repository/src/main/java/com/iluwatar/App.java index 748ed286e..ed7cadc4d 100644 --- a/repository/src/main/java/com/iluwatar/App.java +++ b/repository/src/main/java/com/iluwatar/App.java @@ -4,6 +4,21 @@ import java.util.List; import org.springframework.context.support.ClassPathXmlApplicationContext; +/** + * + * Repository pattern mediates between the domain and data mapping layers using a collection-like + * interface for accessing domain objects. A system with complex domain model often benefits from + * a layer that isolates domain objects from the details of the database access code and in such + * systems it can be worthwhile to build another layer of abstraction over the mapping layer where + * query construction code is concentrated. This becomes more important when there are a large + * number of domain classes or heavy querying. In these cases particularly, adding this layer helps + * minimize duplicate query logic. + * + * In this example we utilize Spring Data to automatically generate a repository for us from the Person + * domain object. Using the PersonDao we perform CRUD operations on the entity. Underneath we have + * configured in-memory H2 database for which schema is created and dropped on each run. + * + */ public class App { public static void main(String[] args) { diff --git a/repository/src/main/java/com/iluwatar/Person.java b/repository/src/main/java/com/iluwatar/Person.java index 22495b926..d3fadeb89 100644 --- a/repository/src/main/java/com/iluwatar/Person.java +++ b/repository/src/main/java/com/iluwatar/Person.java @@ -4,6 +4,11 @@ import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; +/** + * + * Person entity + * + */ @Entity public class Person { @@ -50,5 +55,4 @@ public class Person { 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 index 6b0c0081a..f59bfa292 100644 --- a/repository/src/main/java/com/iluwatar/PersonDao.java +++ b/repository/src/main/java/com/iluwatar/PersonDao.java @@ -5,6 +5,11 @@ import java.util.List; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; +/** + * + * Person repository + * + */ @Repository public interface PersonDao extends CrudRepository {