diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml
index 6d60340128..188ea132c6 100644
--- a/persistence-modules/pom.xml
+++ b/persistence-modules/pom.xml
@@ -82,7 +82,6 @@
spring-data-jpa-annotations
spring-data-jpa-annotations-2
spring-data-jpa-crud
- spring-data-jpa-crud-2
spring-data-jpa-enterprise
spring-data-jpa-enterprise-2
spring-data-jpa-filtering
@@ -93,6 +92,7 @@
spring-data-jpa-repo-2
spring-data-jpa-repo-4
spring-data-jdbc
+ spring-data-jpa-simple
spring-data-keyvalue
spring-data-mongodb
spring-data-mongodb-2
diff --git a/persistence-modules/spring-data-jpa-crud-2/README.md b/persistence-modules/spring-data-jpa-crud-2/README.md
deleted file mode 100644
index c912e1d5aa..0000000000
--- a/persistence-modules/spring-data-jpa-crud-2/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-## Spring Data JPA - CRUD
-
-This module contains articles about CRUD operations in Spring Data JPA
-
-### Relevant Articles:
-- [Generate Database Schema with Spring Data JPA](https://www.baeldung.com/spring-data-jpa-generate-db-schema)
-- More articles: [[<--prev]](/persistence-modules/spring-data-jpa-crud)
-
-### Eclipse Config
-After importing the project into Eclipse, you may see the following error:
-"No persistence xml file found in project"
-
-This can be ignored:
-- Project -> Properties -> Java Persistance -> JPA -> Error/Warnings -> Select Ignore on "No persistence xml file found in project"
-Or:
-- Eclipse -> Preferences - Validation - disable the "Build" execution of the JPA Validator
diff --git a/persistence-modules/spring-data-jpa-crud-2/pom.xml b/persistence-modules/spring-data-jpa-crud-2/pom.xml
deleted file mode 100644
index ff90d0ed8b..0000000000
--- a/persistence-modules/spring-data-jpa-crud-2/pom.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
- 4.0.0
- spring-data-jpa-crud-2
- spring-data-jpa-crud-2
-
-
- com.baeldung
- parent-boot-2
- 0.0.1-SNAPSHOT
- ../../parent-boot-2
-
-
-
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- com.h2database
- h2
- runtime
-
-
-
-
\ No newline at end of file
diff --git a/persistence-modules/spring-data-jpa-crud-2/src/test/java/com/baeldung/schemageneration/AccountRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-crud-2/src/test/java/com/baeldung/schemageneration/AccountRepositoryIntegrationTest.java
deleted file mode 100644
index 86a7671fe4..0000000000
--- a/persistence-modules/spring-data-jpa-crud-2/src/test/java/com/baeldung/schemageneration/AccountRepositoryIntegrationTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.baeldung.schemageneration;
-
-import com.baeldung.schemageneration.model.Account;
-import com.baeldung.schemageneration.model.AccountSetting;
-import com.baeldung.schemageneration.repository.AccountRepository;
-import com.baeldung.schemageneration.repository.AccountSettingRepository;
-import org.junit.After;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = AccountApplication.class)
-public class AccountRepositoryIntegrationTest {
-
- private static final String USER_NAME = "Eduard";
- private static final String USER_EMAIL_ADDRESS = "eduard@gmx.com";
- private static final String ACCOUNT_SETTING_NAME = "Timezone";
- private static final String ACCOUNT_SETTING_VALUE = "UTC+02";
-
- @Autowired
- private AccountRepository accountRepository;
-
- @Autowired
- private AccountSettingRepository accountSettingRepository;
-
- @After
- public void tearDown() {
- accountRepository.deleteAll();
- }
-
- @Test
- public void givenNewAccount_whenSave_thenSuccess() {
- Account account = new Account(USER_NAME, USER_EMAIL_ADDRESS);
- accountRepository.save(account);
-
- assertEquals(1, accountRepository.count());
- }
-
- @Test
- public void givenSavedAccount_whenFindByName_thenFound() {
- Account account = new Account(USER_NAME, USER_EMAIL_ADDRESS);
- accountRepository.save(account);
-
- Account accountFound = accountRepository.findByName(USER_NAME);
-
- assertNotNull(accountFound);
- assertEquals(USER_NAME, accountFound.getName());
- assertEquals(USER_EMAIL_ADDRESS, accountFound.getEmailAddress());
- }
-
- @Test
- public void givenSavedAccount_whenAccountSettingIsAdded_thenPersisted() {
- Account account = new Account(USER_NAME, USER_EMAIL_ADDRESS);
- account.addAccountSetting(new AccountSetting(ACCOUNT_SETTING_NAME, ACCOUNT_SETTING_VALUE));
- accountRepository.save(account);
-
- Account accountFound = accountRepository.findByName(USER_NAME);
- assertNotNull(accountFound);
- AccountSetting accountSetting = accountSettingRepository.findByAccountId(accountFound.getId());
-
- assertNotNull(accountSetting);
- assertEquals(ACCOUNT_SETTING_NAME, accountSetting.getSettingName());
- assertEquals(ACCOUNT_SETTING_VALUE, accountSetting.getSettingValue());
- }
-
-}
diff --git a/persistence-modules/spring-data-jpa-enterprise/README.md b/persistence-modules/spring-data-jpa-enterprise/README.md
index c48a519a87..de29532dfc 100644
--- a/persistence-modules/spring-data-jpa-enterprise/README.md
+++ b/persistence-modules/spring-data-jpa-enterprise/README.md
@@ -8,9 +8,7 @@ This module contains articles about Spring Data JPA used in enterprise applicati
- [DB Integration Tests with Spring Boot and Testcontainers](https://www.baeldung.com/spring-boot-testcontainers-integration-test)
- [A Guide to Spring’s Open Session in View](https://www.baeldung.com/spring-open-session-in-view)
- [Partial Data Update With Spring Data](https://www.baeldung.com/spring-data-partial-update)
-- [Spring Data JPA @Modifying Annotation](https://www.baeldung.com/spring-data-jpa-modifying-annotation)
- [Spring JPA – Multiple Databases](https://www.baeldung.com/spring-data-jpa-multiple-databases)
-- [Pagination and Sorting using Spring Data JPA](https://www.baeldung.com/spring-data-jpa-pagination-sorting)
### Eclipse Config
After importing the project into Eclipse, you may see the following error:
diff --git a/persistence-modules/spring-data-jpa-filtering/README.md b/persistence-modules/spring-data-jpa-filtering/README.md
index fe2f181154..b29c0b9e7b 100644
--- a/persistence-modules/spring-data-jpa-filtering/README.md
+++ b/persistence-modules/spring-data-jpa-filtering/README.md
@@ -6,7 +6,6 @@ This module contains articles about filtering data using Spring Data JPA
- [An Advanced Tagging Implementation with JPA](https://www.baeldung.com/jpa-tagging-advanced)
- [A Simple Tagging Implementation with JPA](https://www.baeldung.com/jpa-tagging)
- [Spring Data JPA and Null Parameters](https://www.baeldung.com/spring-data-jpa-null-parameters)
-- [Spring Data JPA Projections](https://www.baeldung.com/spring-data-jpa-projections)
### Eclipse Config
After importing the project into Eclipse, you may see the following error:
diff --git a/persistence-modules/spring-data-jpa-query-2/README.md b/persistence-modules/spring-data-jpa-query-2/README.md
index e091bc1d99..db1d0cd4c7 100644
--- a/persistence-modules/spring-data-jpa-query-2/README.md
+++ b/persistence-modules/spring-data-jpa-query-2/README.md
@@ -4,7 +4,6 @@ This module contains articles about querying data using Spring Data JPA .
### Relevant Articles:
-- [Spring Data JPA @Query](https://www.baeldung.com/spring-data-jpa-query)
- [Use Criteria Queries in a Spring Data Application](https://www.baeldung.com/spring-data-criteria-queries)
- [Hibernate Pagination](https://www.baeldung.com/hibernate-pagination)
- [Sorting with Hibernate](https://www.baeldung.com/hibernate-sort)
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/QueryApplication.java b/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/QueryApplication.java
similarity index 88%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/QueryApplication.java
rename to persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/QueryApplication.java
index d7a1950305..a7d029b54d 100644
--- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/QueryApplication.java
+++ b/persistence-modules/spring-data-jpa-query-2/src/main/java/com/baeldung/QueryApplication.java
@@ -1,4 +1,4 @@
-package com.baeldung.derivedquery;
+package com.baeldung;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -10,4 +10,4 @@ public class QueryApplication {
SpringApplication.run(QueryApplication.class, args);
}
-}
+}
\ No newline at end of file
diff --git a/persistence-modules/spring-data-jpa-query/README.md b/persistence-modules/spring-data-jpa-query/README.md
index 27e7087592..db923dd56a 100644
--- a/persistence-modules/spring-data-jpa-query/README.md
+++ b/persistence-modules/spring-data-jpa-query/README.md
@@ -4,7 +4,6 @@ This module contains articles about querying data using Spring Data JPA
### Relevant Articles:
- [The Exists Query in Spring Data](https://www.baeldung.com/spring-data-exists-query)
-- [Customizing the Result of JPA Queries with Aggregation Functions](https://www.baeldung.com/jpa-queries-custom-result-with-aggregation-functions)
- [Limiting Query Results With JPA and Spring Data JPA](https://www.baeldung.com/jpa-limit-query-results)
- [Sorting Query Results with Spring Data](https://www.baeldung.com/spring-data-sorting)
- [Spring Data JPA Query by Example](https://www.baeldung.com/spring-data-query-by-example)
diff --git a/persistence-modules/spring-data-jpa-repo-3/README.md b/persistence-modules/spring-data-jpa-repo-3/README.md
index 03b0e7f76b..ff219a1d78 100644
--- a/persistence-modules/spring-data-jpa-repo-3/README.md
+++ b/persistence-modules/spring-data-jpa-repo-3/README.md
@@ -3,7 +3,6 @@
This module contains articles about Spring Data JPA.
### Relevant Articles:
-- [New CRUD Repository Interfaces in Spring Data 3](https://www.baeldung.com/spring-data-3-crud-repository-interfaces)
- [How to Persist a List of String in JPA?](https://www.baeldung.com/java-jpa-persist-string-list)
- [Hibernate Natural IDs in Spring Boot](https://www.baeldung.com/spring-boot-hibernate-natural-ids)
- [Correct Use of flush() in JPA](https://www.baeldung.com/spring-jpa-flush)
diff --git a/persistence-modules/spring-data-jpa-repo-3/src/test/java/com/baeldung/spring/data/jpa/listrepositories/repository/LibraryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo-3/src/test/java/com/baeldung/spring/data/jpa/listrepositories/repository/LibraryIntegrationTest.java
index 7bd1b90407..5b1b51adc5 100644
--- a/persistence-modules/spring-data-jpa-repo-3/src/test/java/com/baeldung/spring/data/jpa/listrepositories/repository/LibraryIntegrationTest.java
+++ b/persistence-modules/spring-data-jpa-repo-3/src/test/java/com/baeldung/spring/data/jpa/listrepositories/repository/LibraryIntegrationTest.java
@@ -10,14 +10,14 @@ import org.springframework.boot.test.context.SpringBootTest;
import java.util.Arrays;
@SpringBootTest
-public class LibraryIntegrationTest {
+class LibraryIntegrationTest {
@Autowired
private LibraryRepository libraryRepository;
@Test
@Transactional
- public void givenLibrary_whenGetAddressesAndGetBooks_thenGetListOfItems(){
+ void givenLibrary_whenGetAddressesAndGetBooks_thenGetListOfItems(){
Library library = new Library();
library.setAddresses(Arrays.asList("Address 1", "Address 2"));
library.setBooks(Arrays.asList("Book 1", "Book 2"));
diff --git a/persistence-modules/spring-data-jpa-repo/README.md b/persistence-modules/spring-data-jpa-repo/README.md
index ef3442929e..f404263159 100644
--- a/persistence-modules/spring-data-jpa-repo/README.md
+++ b/persistence-modules/spring-data-jpa-repo/README.md
@@ -2,10 +2,8 @@
This module contains articles about repositories in Spring Data JPA
-### Relevant Articles:
-- [Introduction to Spring Data JPA](https://www.baeldung.com/the-persistence-layer-with-spring-data-jpa)
+### Relevant Articles:
- [Case Insensitive Queries with Spring Data Repository](https://www.baeldung.com/spring-data-case-insensitive-queries)
-- [Derived Query Methods in Spring Data JPA Repositories](https://www.baeldung.com/spring-data-derived-queries)
- [Spring Data – CrudRepository save() Method](https://www.baeldung.com/spring-data-crud-repository-save)
- [Spring Data JPA – Adding a Method in All Repositories](https://www.baeldung.com/spring-data-jpa-method-in-all-repositories)
- [Spring Data Composable Repositories](https://www.baeldung.com/spring-data-composable-repositories)
diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java
deleted file mode 100644
index cf479780a1..0000000000
--- a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java
+++ /dev/null
@@ -1,172 +0,0 @@
-package com.baeldung.derivedquery.repository;
-
-import com.baeldung.derivedquery.QueryApplication;
-import com.baeldung.derivedquery.entity.User;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import java.time.ZonedDateTime;
-import java.util.Arrays;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = QueryApplication.class)
-public class UserRepositoryIntegrationTest {
-
- private static final String USER_NAME_ADAM = "Adam";
- private static final String USER_NAME_EVE = "Eve";
- private static final ZonedDateTime BIRTHDATE = ZonedDateTime.now();
-
- @Autowired
- private UserRepository userRepository;
-
- @Before
- public void setUp() {
-
- User user1 = new User(USER_NAME_ADAM, 25, BIRTHDATE, true);
- User user2 = new User(USER_NAME_ADAM, 20, BIRTHDATE, false);
- User user3 = new User(USER_NAME_EVE, 20, BIRTHDATE, true);
- User user4 = new User(null, 30, BIRTHDATE, false);
-
- userRepository.saveAll(Arrays.asList(user1, user2, user3, user4));
- }
-
- @After
- public void tearDown() {
-
- userRepository.deleteAll();
- }
-
- @Test
- public void whenFindByName_thenReturnsCorrectResult() {
-
- assertEquals(2, userRepository.findByName(USER_NAME_ADAM).size());
- }
-
- @Test
- public void whenFindByNameIsNull_thenReturnsCorrectResult() {
-
- assertEquals(1, userRepository.findByNameIsNull().size());
- }
-
- @Test
- public void whenFindByNameNot_thenReturnsCorrectResult() {
-
- assertEquals(USER_NAME_EVE, userRepository.findByNameNot(USER_NAME_ADAM).get(0).getName());
- }
-
- @Test
- public void whenFindByNameStartingWith_thenReturnsCorrectResult() {
-
- assertEquals(2, userRepository.findByNameStartingWith("A").size());
- }
-
- @Test
- public void whenFindByNameEndingWith_thenReturnsCorrectResult() {
-
- assertEquals(1, userRepository.findByNameEndingWith("e").size());
- }
-
- @Test
- public void whenByNameContaining_thenReturnsCorrectResult() {
-
- assertEquals(1, userRepository.findByNameContaining("v").size());
- }
-
-
- @Test
- public void whenByNameLike_thenReturnsCorrectResult() {
-
- assertEquals(2, userRepository.findByNameEndingWith("m").size());
- }
-
- @Test
- public void whenByAgeLessThan_thenReturnsCorrectResult() {
-
- assertEquals(2, userRepository.findByAgeLessThan(25).size());
- }
-
-
- @Test
- public void whenByAgeLessThanEqual_thenReturnsCorrectResult() {
-
- assertEquals(3, userRepository.findByAgeLessThanEqual(25).size());
- }
-
- @Test
- public void whenByAgeGreaterThan_thenReturnsCorrectResult() {
-
- assertEquals(1, userRepository.findByAgeGreaterThan(25).size());
- }
-
- @Test
- public void whenByAgeGreaterThanEqual_thenReturnsCorrectResult() {
-
- assertEquals(2, userRepository.findByAgeGreaterThanEqual(25).size());
- }
-
- @Test
- public void whenByAgeBetween_thenReturnsCorrectResult() {
-
- assertEquals(4, userRepository.findByAgeBetween(20, 30).size());
- }
-
- @Test
- public void whenByBirthDateAfter_thenReturnsCorrectResult() {
-
- final ZonedDateTime yesterday = BIRTHDATE.minusDays(1);
- assertEquals(4, userRepository.findByBirthDateAfter(yesterday).size());
- }
-
- @Test
- public void whenByBirthDateBefore_thenReturnsCorrectResult() {
-
- final ZonedDateTime yesterday = BIRTHDATE.minusDays(1);
- assertEquals(0, userRepository.findByBirthDateBefore(yesterday).size());
- }
-
- @Test
- public void whenByActiveTrue_thenReturnsCorrectResult() {
-
- assertEquals(2, userRepository.findByActiveTrue().size());
- }
-
- @Test
- public void whenByActiveFalse_thenReturnsCorrectResult() {
-
- assertEquals(2, userRepository.findByActiveFalse().size());
- }
-
-
- @Test
- public void whenByAgeIn_thenReturnsCorrectResult() {
-
- final List ages = Arrays.asList(20, 25);
- assertEquals(3, userRepository.findByAgeIn(ages).size());
- }
-
- @Test
- public void whenByNameOrAge() {
-
- assertEquals(3, userRepository.findByNameOrAge(USER_NAME_ADAM, 20).size());
- }
-
- @Test
- public void whenByNameOrAgeAndActive() {
-
- assertEquals(2, userRepository.findByNameOrAgeAndActive(USER_NAME_ADAM, 20, false).size());
- }
-
- @Test
- public void whenByNameOrderByName() {
-
- assertEquals(2, userRepository.findByNameOrderByName(USER_NAME_ADAM).size());
- }
-}
\ No newline at end of file
diff --git a/persistence-modules/spring-data-jpa-simple/README.md b/persistence-modules/spring-data-jpa-simple/README.md
new file mode 100644
index 0000000000..4d96acb0f4
--- /dev/null
+++ b/persistence-modules/spring-data-jpa-simple/README.md
@@ -0,0 +1,20 @@
+### Spring Data JPA Articles that are also part of the e-book
+
+This module contains articles about Spring Data JPA that are also part of an Ebook.
+
+
+### NOTE:
+
+Since this is a module tied to an e-book, it should **not** be moved or used to store the code for any further article.
+
+### Relevant Articles
+- [Introduction to Spring Data JPA](https://www.baeldung.com/the-persistence-layer-with-spring-data-jpa)
+- [Customizing the Result of JPA Queries with Aggregation Functions](https://www.baeldung.com/jpa-queries-custom-result-with-aggregation-functions)
+- [CrudRepository, JpaRepository, and PagingAndSortingRepository in Spring Data](https://www.baeldung.com/spring-data-repositories)
+- [New CRUD Repository Interfaces in Spring Data 3](https://www.baeldung.com/spring-data-3-crud-repository-interfaces)
+- [Derived Query Methods in Spring Data JPA Repositories](https://www.baeldung.com/spring-data-derived-queries)
+- [Spring Data JPA @Query](https://www.baeldung.com/spring-data-jpa-query)
+- [Spring Data JPA Projections](https://www.baeldung.com/spring-data-jpa-projections)
+- [Spring Data JPA @Modifying Annotation](https://www.baeldung.com/spring-data-jpa-modifying-annotation)
+- [Generate Database Schema with Spring Data JPA](https://www.baeldung.com/spring-data-jpa-generate-db-schema)
+- [Pagination and Sorting using Spring Data JPA](https://www.baeldung.com/spring-data-jpa-pagination-sorting)
\ No newline at end of file
diff --git a/persistence-modules/spring-data-jpa-simple/pom.xml b/persistence-modules/spring-data-jpa-simple/pom.xml
new file mode 100644
index 0000000000..dc59b1fd22
--- /dev/null
+++ b/persistence-modules/spring-data-jpa-simple/pom.xml
@@ -0,0 +1,88 @@
+
+
+ 4.0.0
+ spring-data-jpa-simple
+ spring-data-jpa-simple
+
+
+ com.baeldung
+ parent-boot-3
+ 0.0.1-SNAPSHOT
+ ../../parent-boot-3
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jdbc
+
+
+ com.mysql
+ mysql-connector-j
+
+
+ org.postgresql
+ postgresql
+
+
+ com.h2database
+ h2
+ runtime
+
+
+ org.springframework
+ spring-oxm
+
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ ${jakarta.xml.bind.version}
+
+
+ org.hibernate.orm
+ hibernate-ant
+ ${hibernate.version}
+
+
+
+
+ 6.4.2.Final
+ 4.0.0
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ repackage
+
+ repackage
+
+
+ true
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/AggregationApplication.java b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/AggregationApplication.java
new file mode 100644
index 0000000000..eebafa387c
--- /dev/null
+++ b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/AggregationApplication.java
@@ -0,0 +1,17 @@
+package com.baeldung.jpa.aggregation;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+
+@SpringBootApplication
+@PropertySource("classpath:aggregation.properties")
+@Configuration
+public class AggregationApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(AggregationApplication.class, args);
+ }
+
+}
diff --git a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/Comment.java b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/Comment.java
similarity index 97%
rename from persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/Comment.java
rename to persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/Comment.java
index 8b4872e05e..8d871fd3fa 100644
--- a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/Comment.java
+++ b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/Comment.java
@@ -1,9 +1,10 @@
-package com.baeldung.aggregation.model;
+package com.baeldung.jpa.aggregation.model;
+
+import java.util.Objects;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToOne;
-import java.util.Objects;
@Entity
public class Comment {
diff --git a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/Post.java b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/Post.java
similarity index 96%
rename from persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/Post.java
rename to persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/Post.java
index 25f48c386e..b0c4fc1523 100644
--- a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/Post.java
+++ b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/Post.java
@@ -1,13 +1,15 @@
-package com.baeldung.aggregation.model;
+package com.baeldung.jpa.aggregation.model;
+
+import java.util.List;
+import java.util.Objects;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
-import java.util.List;
-import java.util.Objects;
@Entity
public class Post {
+
@Id
private Integer id;
private String title;
diff --git a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/custom/CommentCount.java b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/custom/CommentCount.java
similarity index 89%
rename from persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/custom/CommentCount.java
rename to persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/custom/CommentCount.java
index 510b52a47c..f70157c514 100644
--- a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/custom/CommentCount.java
+++ b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/custom/CommentCount.java
@@ -1,4 +1,4 @@
-package com.baeldung.aggregation.model.custom;
+package com.baeldung.jpa.aggregation.model.custom;
public class CommentCount {
private Integer year;
diff --git a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/custom/ICommentCount.java b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/custom/ICommentCount.java
similarity index 65%
rename from persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/custom/ICommentCount.java
rename to persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/custom/ICommentCount.java
index acb25cfd49..645cda8a35 100644
--- a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/model/custom/ICommentCount.java
+++ b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/model/custom/ICommentCount.java
@@ -1,4 +1,4 @@
-package com.baeldung.aggregation.model.custom;
+package com.baeldung.jpa.aggregation.model.custom;
public interface ICommentCount {
diff --git a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/repository/CommentRepository.java b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/repository/CommentRepository.java
similarity index 70%
rename from persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/repository/CommentRepository.java
rename to persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/repository/CommentRepository.java
index 5309581638..f0312e0784 100644
--- a/persistence-modules/spring-data-jpa-query/src/main/java/com/baeldung/aggregation/repository/CommentRepository.java
+++ b/persistence-modules/spring-data-jpa-simple/src/main/java/com/baeldung/jpa/aggregation/repository/CommentRepository.java
@@ -1,13 +1,14 @@
-package com.baeldung.aggregation.repository;
+package com.baeldung.jpa.aggregation.repository;
+
+import java.util.List;
-import com.baeldung.aggregation.model.Comment;
-import com.baeldung.aggregation.model.custom.CommentCount;
-import com.baeldung.aggregation.model.custom.ICommentCount;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
-import java.util.List;
+import com.baeldung.jpa.aggregation.model.Comment;
+import com.baeldung.jpa.aggregation.model.custom.CommentCount;
+import com.baeldung.jpa.aggregation.model.custom.ICommentCount;
@Repository
public interface CommentRepository extends JpaRepository {
@@ -15,7 +16,7 @@ public interface CommentRepository extends JpaRepository {
@Query("SELECT c.year, COUNT(c.year) FROM Comment AS c GROUP BY c.year ORDER BY c.year DESC")
List