From ba226f327b577498d331a82b81343760c7f9e5b9 Mon Sep 17 00:00:00 2001 From: anuragkumawat Date: Tue, 25 Jan 2022 22:21:39 +0530 Subject: [PATCH 1/2] JAVA-8292 : Split or move spring-data-jpa-enterprise module --- .../spring-data-jpa-enterprise-2/README.md | 18 ++++++ .../spring-data-jpa-enterprise-2/pom.xml | 58 +++++++++++++++++++ .../main/java/com/baeldung/Application.java | 13 +++++ .../multipledb/MultipleDbApplication.java | 0 .../PersistenceProductAutoConfiguration.java | 1 - .../PersistenceProductConfiguration.java | 0 .../PersistenceUserAutoConfiguration.java | 1 - .../PersistenceUserConfiguration.java | 0 .../dao/product/ProductRepository.java | 0 .../dao/user/PossessionRepository.java | 0 .../multipledb/dao/user/UserRepository.java | 0 .../multipledb/model/product/Product.java | 0 .../multipledb/model/user/Possession.java | 0 .../baeldung/multipledb/model/user/User.java | 0 .../src/main/resources/application.properties | 15 +++++ .../persistence-multiple-db-boot.properties | 0 .../persistence-multiple-db.properties | 0 .../JpaMultipleDBIntegrationTest.java | 0 .../ProductRepositoryIntegrationTest.java | 2 - .../src/test/resources/logback-test.xml | 13 +++++ .../spring-data-jpa-enterprise/README.md | 2 - .../SpringJpaContextIntegrationTest.java | 6 +- 22 files changed, 118 insertions(+), 11 deletions(-) create mode 100644 persistence-modules/spring-data-jpa-enterprise-2/README.md create mode 100644 persistence-modules/spring-data-jpa-enterprise-2/pom.xml create mode 100644 persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/Application.java rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java (100%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java (97%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java (100%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java (97%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/PersistenceUserConfiguration.java (100%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java (100%) mode change 100755 => 100644 rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java (100%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java (100%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/model/product/Product.java (100%) mode change 100755 => 100644 rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/model/user/Possession.java (100%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/java/com/baeldung/multipledb/model/user/User.java (100%) create mode 100644 persistence-modules/spring-data-jpa-enterprise-2/src/main/resources/application.properties rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/resources/persistence-multiple-db-boot.properties (100%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/main/resources/persistence-multiple-db.properties (100%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java (100%) rename persistence-modules/{spring-data-jpa-enterprise => spring-data-jpa-enterprise-2}/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java (97%) create mode 100644 persistence-modules/spring-data-jpa-enterprise-2/src/test/resources/logback-test.xml diff --git a/persistence-modules/spring-data-jpa-enterprise-2/README.md b/persistence-modules/spring-data-jpa-enterprise-2/README.md new file mode 100644 index 0000000000..9bb08cc497 --- /dev/null +++ b/persistence-modules/spring-data-jpa-enterprise-2/README.md @@ -0,0 +1,18 @@ +## Spring Data JPA - Enterprise + +This module contains articles about Spring Data JPA used in enterprise applications such as transactions, sessions, naming conventions and more + +### Relevant Articles: + +- [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: +"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-enterprise-2/pom.xml b/persistence-modules/spring-data-jpa-enterprise-2/pom.xml new file mode 100644 index 0000000000..7efa5f504f --- /dev/null +++ b/persistence-modules/spring-data-jpa-enterprise-2/pom.xml @@ -0,0 +1,58 @@ + + + 4.0.0 + spring-data-jpa-enterprise-2 + spring-data-jpa-enterprise-2 + + + com.baeldung + parent-boot-2 + 0.0.1-SNAPSHOT + ../../parent-boot-2 + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-data-jdbc + + + org.springframework.boot + spring-boot-starter-cache + + + com.h2database + h2 + + + com.google.guava + guava + ${guava.version} + + + + + src/main/java + + + maven-compiler-plugin + ${maven-compiler-plugin.version} + + 1.8 + 1.8 + + + + + + \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/Application.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/Application.java new file mode 100644 index 0000000000..37dbe7dab8 --- /dev/null +++ b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/Application.java @@ -0,0 +1,13 @@ +package com.baeldung; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/MultipleDbApplication.java diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java similarity index 97% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java index a6f8f0829f..bc7ab57b06 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java +++ b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/PersistenceProductAutoConfiguration.java @@ -8,7 +8,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/PersistenceProductConfiguration.java diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java similarity index 97% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java index e04a1621b2..8080885b37 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java +++ b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/PersistenceUserAutoConfiguration.java @@ -8,7 +8,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Profile; import org.springframework.context.annotation.PropertySource; diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceUserConfiguration.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/PersistenceUserConfiguration.java similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/PersistenceUserConfiguration.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/PersistenceUserConfiguration.java diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java old mode 100755 new mode 100644 similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/dao/product/ProductRepository.java diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/dao/user/PossessionRepository.java diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/dao/user/UserRepository.java diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/product/Product.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/model/product/Product.java old mode 100755 new mode 100644 similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/product/Product.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/model/product/Product.java diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/Possession.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/model/user/Possession.java similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/Possession.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/model/user/Possession.java diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/User.java b/persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/model/user/User.java similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/java/com/baeldung/multipledb/model/user/User.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/java/com/baeldung/multipledb/model/user/User.java diff --git a/persistence-modules/spring-data-jpa-enterprise-2/src/main/resources/application.properties b/persistence-modules/spring-data-jpa-enterprise-2/src/main/resources/application.properties new file mode 100644 index 0000000000..0ca1872207 --- /dev/null +++ b/persistence-modules/spring-data-jpa-enterprise-2/src/main/resources/application.properties @@ -0,0 +1,15 @@ + +spring.datasource.url=jdbc:h2:mem:baeldung + +# JPA-Schema-Generation +# Use below configuration to generate database schema create commands based on the entity models +# and export them into the create.sql file +#spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create +#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql +#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-source=metadata +#spring.jpa.properties.hibernate.format_sql=true + +spring.jpa.show-sql=false + +#hibernate.dialect=org.hibernate.dialect.H2Dialect +spring.jpa.properties.hibernate.id.new_generator_mappings=false \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/resources/persistence-multiple-db-boot.properties b/persistence-modules/spring-data-jpa-enterprise-2/src/main/resources/persistence-multiple-db-boot.properties similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/resources/persistence-multiple-db-boot.properties rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/resources/persistence-multiple-db-boot.properties diff --git a/persistence-modules/spring-data-jpa-enterprise/src/main/resources/persistence-multiple-db.properties b/persistence-modules/spring-data-jpa-enterprise-2/src/main/resources/persistence-multiple-db.properties similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/main/resources/persistence-multiple-db.properties rename to persistence-modules/spring-data-jpa-enterprise-2/src/main/resources/persistence-multiple-db.properties diff --git a/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise-2/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java similarity index 100% rename from persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/test/java/com/baeldung/multipledb/JpaMultipleDBIntegrationTest.java diff --git a/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise-2/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java similarity index 97% rename from persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-enterprise-2/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java index 9bfba61a3b..831790af95 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-enterprise-2/src/test/java/com/baeldung/multipledb/ProductRepositoryIntegrationTest.java @@ -18,12 +18,10 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; -import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.Transactional; -import com.baeldung.multipledb.PersistenceProductConfiguration; import com.baeldung.multipledb.dao.product.ProductRepository; import com.baeldung.multipledb.model.product.Product; diff --git a/persistence-modules/spring-data-jpa-enterprise-2/src/test/resources/logback-test.xml b/persistence-modules/spring-data-jpa-enterprise-2/src/test/resources/logback-test.xml new file mode 100644 index 0000000000..1595326253 --- /dev/null +++ b/persistence-modules/spring-data-jpa-enterprise-2/src/test/resources/logback-test.xml @@ -0,0 +1,13 @@ + + + + + [%d{ISO8601}]-[%thread] %-5level %logger - %msg%n + + + + + + + + \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-enterprise/README.md b/persistence-modules/spring-data-jpa-enterprise/README.md index 42fbecc880..ca89bd54e7 100644 --- a/persistence-modules/spring-data-jpa-enterprise/README.md +++ b/persistence-modules/spring-data-jpa-enterprise/README.md @@ -4,9 +4,7 @@ This module contains articles about Spring Data JPA used in enterprise applicati ### Relevant Articles: -- [Spring JPA – Multiple Databases](https://www.baeldung.com/spring-data-jpa-multiple-databases) - [Spring Data Java 8 Support](https://www.baeldung.com/spring-data-java-8) -- [Pagination and Sorting using Spring Data JPA](https://www.baeldung.com/spring-data-jpa-pagination-sorting) - [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) - [Working with Lazy Element Collections in JPA](https://www.baeldung.com/java-jpa-lazy-collections) diff --git a/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java index f3697bf39f..ecaa83f3f3 100644 --- a/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-enterprise/src/test/java/com/baeldung/SpringJpaContextIntegrationTest.java @@ -8,14 +8,10 @@ import org.springframework.test.context.junit4.SpringRunner; import com.baeldung.boot.Application; import com.baeldung.boot.config.PersistenceConfiguration; -import com.baeldung.multipledb.PersistenceProductConfiguration; -import com.baeldung.multipledb.PersistenceUserConfiguration; @RunWith(SpringRunner.class) @DataJpaTest(excludeAutoConfiguration = { - PersistenceConfiguration.class, - PersistenceUserConfiguration.class, - PersistenceProductConfiguration.class }) + PersistenceConfiguration.class }) @ContextConfiguration(classes = Application.class) public class SpringJpaContextIntegrationTest { From 57495b7f15da1be2b561097ca7cc0f8a2de010a6 Mon Sep 17 00:00:00 2001 From: anuragkumawat Date: Fri, 28 Jan 2022 09:49:18 +0530 Subject: [PATCH 2/2] Remove unwanted dependencies --- .../spring-data-jpa-enterprise-2/pom.xml | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/persistence-modules/spring-data-jpa-enterprise-2/pom.xml b/persistence-modules/spring-data-jpa-enterprise-2/pom.xml index 7efa5f504f..f35ee378d1 100644 --- a/persistence-modules/spring-data-jpa-enterprise-2/pom.xml +++ b/persistence-modules/spring-data-jpa-enterprise-2/pom.xml @@ -22,14 +22,6 @@ org.springframework.boot spring-boot-starter-data-jpa - - org.springframework.boot - spring-boot-starter-data-jdbc - - - org.springframework.boot - spring-boot-starter-cache - com.h2database h2 @@ -41,18 +33,4 @@ - - src/main/java - - - maven-compiler-plugin - ${maven-compiler-plugin.version} - - 1.8 - 1.8 - - - - - \ No newline at end of file