diff --git a/persistence-modules/spring-data-jpa-repo-2/pom.xml b/persistence-modules/spring-data-jpa-repo-2/pom.xml
index db6713c4ad93..236da42daee3 100644
--- a/persistence-modules/spring-data-jpa-repo-2/pom.xml
+++ b/persistence-modules/spring-data-jpa-repo-2/pom.xml
@@ -58,6 +58,20 @@
${querydsl.version}
provided
+
+ org.springframework
+ spring-oxm
+ ${spring-oxm.version}
+
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ 4.0.0
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
@@ -100,6 +114,7 @@
3.1.0
1.1.3
true
+ 6.1.4
\ No newline at end of file
diff --git a/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/BootApplication.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/BootApplication.java
new file mode 100644
index 000000000000..9275d9f44913
--- /dev/null
+++ b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/BootApplication.java
@@ -0,0 +1,21 @@
+package com.baeldung.boot;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+
+import com.baeldung.jpa.JpaApplication;
+import com.baeldung.boot.daos.impl.ExtendedRepositoryImpl;
+
+@SpringBootApplication
+@EnableJpaRepositories(repositoryBaseClass = ExtendedRepositoryImpl.class, basePackages = "com.baeldung.boot.daos")
+@EntityScan({"com.baeldung.boot.domain"})
+@ComponentScan("com.baeldung.boot.daos")
+public class BootApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(JpaApplication.class, args);
+ }
+
+}
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/CustomItemRepository.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/CustomItemRepository.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/CustomItemRepository.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/CustomItemRepository.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/CustomItemTypeRepository.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/CustomItemTypeRepository.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/CustomItemTypeRepository.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/CustomItemTypeRepository.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ExtendedRepository.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/ExtendedRepository.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ExtendedRepository.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/ExtendedRepository.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ExtendedStudentRepository.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/ExtendedStudentRepository.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ExtendedStudentRepository.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/ExtendedStudentRepository.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ItemTypeRepository.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/ItemTypeRepository.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ItemTypeRepository.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/ItemTypeRepository.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/LocationRepository.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/LocationRepository.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/LocationRepository.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/LocationRepository.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ReadOnlyLocationRepository.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/ReadOnlyLocationRepository.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/ReadOnlyLocationRepository.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/ReadOnlyLocationRepository.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/StoreRepository.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/StoreRepository.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/StoreRepository.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/StoreRepository.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/CustomItemRepositoryImpl.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/impl/CustomItemRepositoryImpl.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/CustomItemRepositoryImpl.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/impl/CustomItemRepositoryImpl.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/CustomItemTypeRepositoryImpl.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/impl/CustomItemTypeRepositoryImpl.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/CustomItemTypeRepositoryImpl.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/impl/CustomItemTypeRepositoryImpl.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/ExtendedRepositoryImpl.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/impl/ExtendedRepositoryImpl.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/daos/impl/ExtendedRepositoryImpl.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/daos/impl/ExtendedRepositoryImpl.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Item.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/Item.java
similarity index 92%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Item.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/Item.java
index 1a9c41806477..a084b9664d63 100644
--- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Item.java
+++ b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/Item.java
@@ -4,6 +4,7 @@
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
@Entity
@@ -16,11 +17,13 @@ public class Item {
private Long id;
@ManyToOne
+ @JoinColumn(name = "ITEM_TYPE_ID")
private ItemType itemType;
private String name;
private BigDecimal price;
@ManyToOne
+ @JoinColumn(name = "STORE_ID")
private Store store;
public String getColor() {
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/ItemType.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/ItemType.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/ItemType.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/ItemType.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/KVTag.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/KVTag.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/KVTag.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/KVTag.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Location.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/Location.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Location.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/Location.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/SkillTag.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/SkillTag.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/SkillTag.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/SkillTag.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Store.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/Store.java
similarity index 97%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Store.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/Store.java
index ea01094c9887..febf2ec4b82a 100644
--- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Store.java
+++ b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/Store.java
@@ -22,6 +22,7 @@ public class Store {
private Long itemsSold;
@ManyToOne
+ @JoinColumn(name = "LOCATION_ID")
private Location location;
private String name;
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Student.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/Student.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/domain/Student.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/boot/domain/Student.java
diff --git a/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/JpaApplication.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/JpaApplication.java
new file mode 100644
index 000000000000..eab5a741a3f3
--- /dev/null
+++ b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/JpaApplication.java
@@ -0,0 +1,17 @@
+package com.baeldung.jpa;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+
+@SpringBootApplication
+@ComponentScan("com.baeldung.jpa")
+@EnableJpaRepositories("com.baeldung.jpa.repository")
+public class JpaApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(JpaApplication.class, args);
+ }
+
+}
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/config/JpaPopulators.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/config/JpaPopulators.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/config/JpaPopulators.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/config/JpaPopulators.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Fruit.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/domain/Fruit.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Fruit.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/domain/Fruit.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Passenger.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/domain/Passenger.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Passenger.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/domain/Passenger.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/FruitRepository.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/repository/FruitRepository.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/FruitRepository.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/repository/FruitRepository.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/PassengerRepository.java b/persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/repository/PassengerRepository.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/PassengerRepository.java
rename to persistence-modules/spring-data-jpa-repo-2/src/main/java/com/baeldung/jpa/repository/PassengerRepository.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/resources/apple-fruit-data.xml b/persistence-modules/spring-data-jpa-repo-2/src/main/resources/apple-fruit-data.xml
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/resources/apple-fruit-data.xml
rename to persistence-modules/spring-data-jpa-repo-2/src/main/resources/apple-fruit-data.xml
diff --git a/persistence-modules/spring-data-jpa-repo-2/src/main/resources/application.properties b/persistence-modules/spring-data-jpa-repo-2/src/main/resources/application.properties
index a4c7dffcc652..937d7ec43770 100644
--- a/persistence-modules/spring-data-jpa-repo-2/src/main/resources/application.properties
+++ b/persistence-modules/spring-data-jpa-repo-2/src/main/resources/application.properties
@@ -9,3 +9,5 @@ spring.jpa.show-sql=false
logging.level.org.hibernate.SQL=ERROR
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=ERROR
spring.jpa.properties.hibernate.format_sql=true
+
+spring.jpa.defer-datasource-initialization=true
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/resources/fruit-data.json b/persistence-modules/spring-data-jpa-repo-2/src/main/resources/fruit-data.json
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/resources/fruit-data.json
rename to persistence-modules/spring-data-jpa-repo-2/src/main/resources/fruit-data.json
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/resources/guava-fruit-data.xml b/persistence-modules/spring-data-jpa-repo-2/src/main/resources/guava-fruit-data.xml
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/resources/guava-fruit-data.xml
rename to persistence-modules/spring-data-jpa-repo-2/src/main/resources/guava-fruit-data.xml
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/resources/import_entities.sql b/persistence-modules/spring-data-jpa-repo-2/src/main/resources/import_entities.sql
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/main/resources/import_entities.sql
rename to persistence-modules/spring-data-jpa-repo-2/src/main/resources/import_entities.sql
diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo-2/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java
rename to persistence-modules/spring-data-jpa-repo-2/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/JpaRepositoriesIntegrationTest.java b/persistence-modules/spring-data-jpa-repo-2/src/test/java/com/baeldung/boot/daos/JpaRepositoriesIntegrationTest.java
similarity index 91%
rename from persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/JpaRepositoriesIntegrationTest.java
rename to persistence-modules/spring-data-jpa-repo-2/src/test/java/com/baeldung/boot/daos/JpaRepositoriesIntegrationTest.java
index 34de77a2b315..616d46a310f4 100644
--- a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/JpaRepositoriesIntegrationTest.java
+++ b/persistence-modules/spring-data-jpa-repo-2/src/test/java/com/baeldung/boot/daos/JpaRepositoriesIntegrationTest.java
@@ -12,7 +12,9 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
import com.baeldung.boot.domain.Item;
@@ -22,6 +24,10 @@
@RunWith(SpringRunner.class)
@DataJpaTest(properties="spring.sql.init.data-locations=classpath:import_entities.sql", showSql = false)
+@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
+@TestPropertySource(properties = {
+ "spring.jpa.properties.hibernate.globally_quoted_identifiers=false"
+ })
public class JpaRepositoriesIntegrationTest {
@Autowired
private LocationRepository locationRepository;
diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/FruitPopulatorIntegrationTest.java b/persistence-modules/spring-data-jpa-repo-2/src/test/java/com/baeldung/jpa/FruitPopulatorIntegrationTest.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/FruitPopulatorIntegrationTest.java
rename to persistence-modules/spring-data-jpa-repo-2/src/test/java/com/baeldung/jpa/FruitPopulatorIntegrationTest.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/PassengerRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo-2/src/test/java/com/baeldung/jpa/PassengerRepositoryIntegrationTest.java
similarity index 100%
rename from persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/PassengerRepositoryIntegrationTest.java
rename to persistence-modules/spring-data-jpa-repo-2/src/test/java/com/baeldung/jpa/PassengerRepositoryIntegrationTest.java
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/BootApplication.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/BootApplication.java
index 9275d9f44913..cf8dee51f29b 100644
--- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/BootApplication.java
+++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/BootApplication.java
@@ -7,10 +7,9 @@
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import com.baeldung.jpa.JpaApplication;
-import com.baeldung.boot.daos.impl.ExtendedRepositoryImpl;
@SpringBootApplication
-@EnableJpaRepositories(repositoryBaseClass = ExtendedRepositoryImpl.class, basePackages = "com.baeldung.boot.daos")
+@EnableJpaRepositories(basePackages = "com.baeldung.boot.daos")
@EntityScan({"com.baeldung.boot.domain"})
@ComponentScan("com.baeldung.boot.daos")
public class BootApplication {