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 {