diff --git a/spring-boot-rest/pom.xml b/spring-boot-rest/pom.xml
index 3787e21493..10dacf99e8 100644
--- a/spring-boot-rest/pom.xml
+++ b/spring-boot-rest/pom.xml
@@ -45,6 +45,11 @@
spring-boot-starter-data-jpa
+
+ org.springframework.boot
+ spring-boot-starter-data-rest
+
+
org.springframework.boot
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/IUserService.java b/spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/IUserService.java
deleted file mode 100644
index 79934114c1..0000000000
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/IUserService.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.baeldung.modelmapper.service;
-
-import com.baeldung.modelmapper.model.User;
-
-public interface IUserService {
-
- User getCurrentUser();
-
-}
diff --git a/spring-boot-rest/src/main/java/com/baeldung/spring/PersistenceConfig.java b/spring-boot-rest/src/main/java/com/baeldung/spring/PersistenceConfig.java
index 2e967751ad..8887510eca 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/spring/PersistenceConfig.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/spring/PersistenceConfig.java
@@ -24,8 +24,8 @@ import com.google.common.base.Preconditions;
@Configuration
@EnableTransactionManagement
@PropertySource({ "classpath:persistence-${envTarget:h2}.properties" })
-@ComponentScan(basePackages = { "com.baeldung.persistence", "com.baeldung.modelmapper" })
-@EnableJpaRepositories(basePackages = {"com.baeldung.persistence.dao", "com.baeldung.modelmapper.repository"})
+@ComponentScan(basePackages = { "com.baeldung.persistence", "com.baeldung.springpagination" })
+@EnableJpaRepositories(basePackages = {"com.baeldung.persistence.dao", "com.baeldung.springpagination.repository"})
public class PersistenceConfig {
@Autowired
@@ -39,7 +39,7 @@ public class PersistenceConfig {
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
- em.setPackagesToScan(new String[] { "com.baeldung.persistence.model", "com.baeldung.modelmapper.model" });
+ em.setPackagesToScan(new String[] { "com.baeldung.persistence.model", "com.baeldung.springpagination.model" });
final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
// vendorAdapter.set
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/controller/PostRestController.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/controller/PostRestController.java
similarity index 91%
rename from spring-boot-rest/src/main/java/com/baeldung/modelmapper/controller/PostRestController.java
rename to spring-boot-rest/src/main/java/com/baeldung/springpagination/controller/PostRestController.java
index e2def62466..c52960b365 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/controller/PostRestController.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/controller/PostRestController.java
@@ -1,9 +1,9 @@
-package com.baeldung.modelmapper.controller;
+package com.baeldung.springpagination.controller;
-import com.baeldung.modelmapper.dto.PostDto;
-import com.baeldung.modelmapper.model.Post;
-import com.baeldung.modelmapper.service.IPostService;
-import com.baeldung.modelmapper.service.IUserService;
+import com.baeldung.springpagination.dto.PostDto;
+import com.baeldung.springpagination.model.Post;
+import com.baeldung.springpagination.service.IPostService;
+import com.baeldung.springpagination.service.IUserService;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/dto/PostDto.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/dto/PostDto.java
similarity index 96%
rename from spring-boot-rest/src/main/java/com/baeldung/modelmapper/dto/PostDto.java
rename to spring-boot-rest/src/main/java/com/baeldung/springpagination/dto/PostDto.java
index 6fe2b23888..81cec5ed8c 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/dto/PostDto.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/dto/PostDto.java
@@ -1,4 +1,4 @@
-package com.baeldung.modelmapper.dto;
+package com.baeldung.springpagination.dto;
import java.text.ParseException;
import java.text.SimpleDateFormat;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/dto/UserDto.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/dto/UserDto.java
similarity index 80%
rename from spring-boot-rest/src/main/java/com/baeldung/modelmapper/dto/UserDto.java
rename to spring-boot-rest/src/main/java/com/baeldung/springpagination/dto/UserDto.java
index 23110ecbaa..2e4f667b30 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/dto/UserDto.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/dto/UserDto.java
@@ -1,4 +1,4 @@
-package com.baeldung.modelmapper.dto;
+package com.baeldung.springpagination.dto;
public class UserDto {
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/model/Post.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Post.java
similarity index 97%
rename from spring-boot-rest/src/main/java/com/baeldung/modelmapper/model/Post.java
rename to spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Post.java
index be65ce34a2..88e9ef67bb 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/model/Post.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Post.java
@@ -1,4 +1,4 @@
-package com.baeldung.modelmapper.model;
+package com.baeldung.springpagination.model;
import java.util.Date;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/model/Preference.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Preference.java
similarity index 92%
rename from spring-boot-rest/src/main/java/com/baeldung/modelmapper/model/Preference.java
rename to spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Preference.java
index 0ab5b1eddf..44f8f41aff 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/model/Preference.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Preference.java
@@ -1,4 +1,4 @@
-package com.baeldung.modelmapper.model;
+package com.baeldung.springpagination.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Subject.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Subject.java
new file mode 100644
index 0000000000..80598ae07d
--- /dev/null
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/Subject.java
@@ -0,0 +1,37 @@
+package com.baeldung.springpagination.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
+public class Subject {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private long id;
+
+ @Column(nullable = false)
+ private String name;
+
+ public Subject() {
+ }
+
+ 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;
+ }
+}
\ No newline at end of file
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/model/User.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/User.java
similarity index 94%
rename from spring-boot-rest/src/main/java/com/baeldung/modelmapper/model/User.java
rename to spring-boot-rest/src/main/java/com/baeldung/springpagination/model/User.java
index a458b26f4a..4d33834b28 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/model/User.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/model/User.java
@@ -1,4 +1,4 @@
-package com.baeldung.modelmapper.model;
+package com.baeldung.springpagination.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/repository/PostRepository.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/repository/PostRepository.java
similarity index 82%
rename from spring-boot-rest/src/main/java/com/baeldung/modelmapper/repository/PostRepository.java
rename to spring-boot-rest/src/main/java/com/baeldung/springpagination/repository/PostRepository.java
index fc3f5733c3..acdc01df94 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/repository/PostRepository.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/repository/PostRepository.java
@@ -1,4 +1,4 @@
-package com.baeldung.modelmapper.repository;
+package com.baeldung.springpagination.repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
@@ -7,8 +7,8 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
-import com.baeldung.modelmapper.model.Post;
-import com.baeldung.modelmapper.model.User;
+import com.baeldung.springpagination.model.Post;
+import com.baeldung.springpagination.model.User;
public interface PostRepository extends JpaRepository, PagingAndSortingRepository {
diff --git a/spring-boot-rest/src/main/java/com/baeldung/springpagination/repository/SubjectRepository.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/repository/SubjectRepository.java
new file mode 100644
index 0000000000..03c66f8d72
--- /dev/null
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/repository/SubjectRepository.java
@@ -0,0 +1,16 @@
+package com.baeldung.springpagination.repository;
+
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.repository.PagingAndSortingRepository;
+import org.springframework.data.repository.query.Param;
+import org.springframework.data.rest.core.annotation.RestResource;
+
+import com.baeldung.springpagination.model.Subject;
+
+public interface SubjectRepository extends PagingAndSortingRepository {
+
+ @RestResource(path = "nameContains")
+ public Page findByNameContaining(@Param("name") String name, Pageable p);
+
+}
\ No newline at end of file
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/IPostService.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/IPostService.java
similarity index 71%
rename from spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/IPostService.java
rename to spring-boot-rest/src/main/java/com/baeldung/springpagination/service/IPostService.java
index 0182a0da41..d1d9bee2c6 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/IPostService.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/IPostService.java
@@ -1,8 +1,8 @@
-package com.baeldung.modelmapper.service;
+package com.baeldung.springpagination.service;
import java.util.List;
-import com.baeldung.modelmapper.model.Post;
+import com.baeldung.springpagination.model.Post;
public interface IPostService {
diff --git a/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/IUserService.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/IUserService.java
new file mode 100644
index 0000000000..92dce3ed78
--- /dev/null
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/IUserService.java
@@ -0,0 +1,9 @@
+package com.baeldung.springpagination.service;
+
+import com.baeldung.springpagination.model.User;
+
+public interface IUserService {
+
+ User getCurrentUser();
+
+}
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/PostService.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/PostService.java
similarity index 87%
rename from spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/PostService.java
rename to spring-boot-rest/src/main/java/com/baeldung/springpagination/service/PostService.java
index 5980c30837..bb4869dd33 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/PostService.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/PostService.java
@@ -1,4 +1,4 @@
-package com.baeldung.modelmapper.service;
+package com.baeldung.springpagination.service;
import java.util.List;
@@ -8,8 +8,8 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
-import com.baeldung.modelmapper.model.Post;
-import com.baeldung.modelmapper.repository.PostRepository;
+import com.baeldung.springpagination.model.Post;
+import com.baeldung.springpagination.repository.PostRepository;
@Service
public class PostService implements IPostService {
diff --git a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/UserService.java b/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/UserService.java
similarity index 76%
rename from spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/UserService.java
rename to spring-boot-rest/src/main/java/com/baeldung/springpagination/service/UserService.java
index e445f836a4..0694450f44 100644
--- a/spring-boot-rest/src/main/java/com/baeldung/modelmapper/service/UserService.java
+++ b/spring-boot-rest/src/main/java/com/baeldung/springpagination/service/UserService.java
@@ -1,9 +1,9 @@
-package com.baeldung.modelmapper.service;
+package com.baeldung.springpagination.service;
import org.springframework.stereotype.Service;
-import com.baeldung.modelmapper.model.Preference;
-import com.baeldung.modelmapper.model.User;
+import com.baeldung.springpagination.model.Preference;
+import com.baeldung.springpagination.model.User;
@Service
public class UserService implements IUserService {
diff --git a/spring-boot-rest/src/test/java/com/baeldung/modelmapper/PostDtoUnitTest.java b/spring-boot-rest/src/test/java/com/baeldung/springpagination/PostDtoUnitTest.java
similarity index 89%
rename from spring-boot-rest/src/test/java/com/baeldung/modelmapper/PostDtoUnitTest.java
rename to spring-boot-rest/src/test/java/com/baeldung/springpagination/PostDtoUnitTest.java
index 6e94cc4289..948247e166 100644
--- a/spring-boot-rest/src/test/java/com/baeldung/modelmapper/PostDtoUnitTest.java
+++ b/spring-boot-rest/src/test/java/com/baeldung/springpagination/PostDtoUnitTest.java
@@ -1,12 +1,12 @@
-package com.baeldung.modelmapper;
+package com.baeldung.springpagination;
import static org.junit.Assert.assertEquals;
import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
import org.junit.Test;
import org.modelmapper.ModelMapper;
-import com.baeldung.modelmapper.dto.PostDto;
-import com.baeldung.modelmapper.model.Post;
+import com.baeldung.springpagination.dto.PostDto;
+import com.baeldung.springpagination.model.Post;
public class PostDtoUnitTest {