diff --git a/persistence-modules/spring-data-jpa-repo/README.md b/persistence-modules/spring-data-jpa-repo/README.md index 9587f544f9..ef3442929e 100644 --- a/persistence-modules/spring-data-jpa-repo/README.md +++ b/persistence-modules/spring-data-jpa-repo/README.md @@ -20,6 +20,6 @@ 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" +- Project -> Properties -> Java Persistence -> 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-repo/src/main/java/com/baeldung/boot/BootApplication.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/boot/BootApplication.java new file mode 100644 index 0000000000..9275d9f449 --- /dev/null +++ b/persistence-modules/spring-data-jpa-repo/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/Application.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/JpaApplication.java similarity index 51% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/Application.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/JpaApplication.java index 47a18b557f..eab5a741a3 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/Application.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/JpaApplication.java @@ -1,17 +1,17 @@ -package com.baeldung; +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; -import com.baeldung.boot.daos.impl.ExtendedRepositoryImpl; - @SpringBootApplication -@EnableJpaRepositories(repositoryBaseClass = ExtendedRepositoryImpl.class) -public class Application { +@ComponentScan("com.baeldung.jpa") +@EnableJpaRepositories("com.baeldung.jpa.repository") +public class JpaApplication { public static void main(String[] args) { - SpringApplication.run(Application.class, args); + SpringApplication.run(JpaApplication.class, args); } } diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/config/JpaPopulators.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/config/JpaPopulators.java similarity index 93% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/config/JpaPopulators.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/config/JpaPopulators.java index 24348d31c5..c21bb48c83 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/config/JpaPopulators.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/config/JpaPopulators.java @@ -1,35 +1,35 @@ -package com.baeldung.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; -import org.springframework.data.repository.init.Jackson2RepositoryPopulatorFactoryBean; -import org.springframework.data.repository.init.UnmarshallerRepositoryPopulatorFactoryBean; -import org.springframework.oxm.jaxb.Jaxb2Marshaller; - -import com.baeldung.entity.Fruit; - -@Configuration -public class JpaPopulators { - - @Bean - public Jackson2RepositoryPopulatorFactoryBean getRespositoryPopulator() throws Exception { - Jackson2RepositoryPopulatorFactoryBean factory = new Jackson2RepositoryPopulatorFactoryBean(); - factory.setResources(new Resource[] { new ClassPathResource("fruit-data.json") }); - return factory; - } - - @Bean - public UnmarshallerRepositoryPopulatorFactoryBean repositoryPopulator() { - - Jaxb2Marshaller unmarshaller = new Jaxb2Marshaller(); - unmarshaller.setClassesToBeBound(Fruit.class); - - UnmarshallerRepositoryPopulatorFactoryBean factory = new UnmarshallerRepositoryPopulatorFactoryBean(); - factory.setUnmarshaller(unmarshaller); - factory.setResources(new Resource[] { new ClassPathResource("apple-fruit-data.xml"), new ClassPathResource("guava-fruit-data.xml") }); - return factory; - } - -} +package com.baeldung.jpa.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.data.repository.init.Jackson2RepositoryPopulatorFactoryBean; +import org.springframework.data.repository.init.UnmarshallerRepositoryPopulatorFactoryBean; +import org.springframework.oxm.jaxb.Jaxb2Marshaller; + +import com.baeldung.jpa.domain.Fruit; + +@Configuration +public class JpaPopulators { + + @Bean + public Jackson2RepositoryPopulatorFactoryBean getRespositoryPopulator() throws Exception { + Jackson2RepositoryPopulatorFactoryBean factory = new Jackson2RepositoryPopulatorFactoryBean(); + factory.setResources(new Resource[] { new ClassPathResource("fruit-data.json") }); + return factory; + } + + @Bean + public UnmarshallerRepositoryPopulatorFactoryBean repositoryPopulator() { + + Jaxb2Marshaller unmarshaller = new Jaxb2Marshaller(); + unmarshaller.setClassesToBeBound(Fruit.class); + + UnmarshallerRepositoryPopulatorFactoryBean factory = new UnmarshallerRepositoryPopulatorFactoryBean(); + factory.setUnmarshaller(unmarshaller); + factory.setResources(new Resource[] { new ClassPathResource("apple-fruit-data.xml"), new ClassPathResource("guava-fruit-data.xml") }); + return factory; + } + +} diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/PersistenceConfig.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/config/PersistenceConfig.java similarity index 87% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/PersistenceConfig.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/config/PersistenceConfig.java index f3c9301bcf..0c47351104 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/PersistenceConfig.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/config/PersistenceConfig.java @@ -1,4 +1,4 @@ -package com.baeldung.repository; +package com.baeldung.jpa.config; import java.util.Properties; @@ -6,12 +6,10 @@ import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; @@ -23,24 +21,18 @@ import com.google.common.base.Preconditions; @Configuration @PropertySource("classpath:persistence.properties") -@ComponentScan("com.baeldung.repository") -//@ImportResource("classpath*:*springDataConfig.xml") @EnableTransactionManagement -@EnableJpaRepositories(basePackages = "com.baeldung.repository") +//@ImportResource("classpath*:*springDataConfig.xml") public class PersistenceConfig { @Autowired private Environment env; - public PersistenceConfig() { - super(); - } - @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource()); - em.setPackagesToScan("com.baeldung.spring.data.persistence.repository"); + em.setPackagesToScan("com.baeldung.jpa.domain"); final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); em.setJpaVendorAdapter(vendorAdapter); diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/Foo.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Foo.java similarity index 97% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/Foo.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Foo.java index 27ebcf5875..f799635eae 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/Foo.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Foo.java @@ -1,4 +1,4 @@ -package com.baeldung.repository; +package com.baeldung.jpa.domain; import java.io.Serializable; diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Fruit.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Fruit.java similarity index 90% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Fruit.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Fruit.java index d45ac33db8..6314c58da3 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Fruit.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Fruit.java @@ -1,40 +1,40 @@ -package com.baeldung.entity; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement -@Entity -public class Fruit { - - @Id - private long id; - private String name; - private String color; - - 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; - } - - public String getColor() { - return color; - } - - public void setColor(String color) { - this.color = color; - } - -} +package com.baeldung.jpa.domain; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement +@Entity +public class Fruit { + + @Id + private long id; + private String name; + private String color; + + 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; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + +} diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Passenger.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Passenger.java similarity index 98% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Passenger.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Passenger.java index 3aafbe9afa..acfb7947c0 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Passenger.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Passenger.java @@ -1,4 +1,4 @@ -package com.baeldung.entity; +package com.baeldung.jpa.domain; import javax.persistence.Basic; import javax.persistence.Column; diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Song.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Song.java similarity index 97% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Song.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Song.java index 395527c1eb..9dcde0bea4 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/entity/Song.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/domain/Song.java @@ -1,4 +1,4 @@ -package com.baeldung.entity; +package com.baeldung.jpa.domain; import javax.persistence.Column; import javax.persistence.Entity; diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/FruitRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/FruitRepository.java similarity index 88% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/FruitRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/FruitRepository.java index 5055252adf..dfbb4a5102 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/FruitRepository.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/FruitRepository.java @@ -1,27 +1,27 @@ -package com.baeldung.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; - -import com.baeldung.entity.Fruit; - -@Repository -public interface FruitRepository extends JpaRepository { - - Long deleteByName(String name); - - List deleteByColor(String color); - - Long removeByName(String name); - - List removeByColor(String color); - - @Modifying - @Query("delete from Fruit f where f.name=:name or f.color=:color") - int deleteFruits(@Param("name") String name, @Param("color") String color); -} +package com.baeldung.jpa.repository; + +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import com.baeldung.jpa.domain.Fruit; + +@Repository +public interface FruitRepository extends JpaRepository { + + Long deleteByName(String name); + + List deleteByColor(String color); + + Long removeByName(String name); + + List removeByColor(String color); + + @Modifying + @Query("delete from Fruit f where f.name=:name or f.color=:color") + int deleteFruits(@Param("name") String name, @Param("color") String color); +} diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/IFooDAO.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/IFooDAO.java similarity index 82% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/IFooDAO.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/IFooDAO.java index 6ee74fe26c..4834e2f68c 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/IFooDAO.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/IFooDAO.java @@ -1,9 +1,10 @@ -package com.baeldung.repository; +package com.baeldung.jpa.repository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; + +import com.baeldung.jpa.domain.Foo; public interface IFooDAO extends JpaRepository { diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/PassengerRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/PassengerRepository.java similarity index 58% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/PassengerRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/PassengerRepository.java index a295a74f1b..c7aa56f830 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/PassengerRepository.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/PassengerRepository.java @@ -1,13 +1,13 @@ -package com.baeldung.repository; +package com.baeldung.jpa.repository; -import com.baeldung.entity.Passenger; +import com.baeldung.jpa.domain.Passenger; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; import java.util.List; @Repository -interface PassengerRepository extends JpaRepository { +public interface PassengerRepository extends JpaRepository { List findByFirstNameIgnoreCase(String firstName); diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/SongRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/SongRepository.java similarity index 86% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/SongRepository.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/SongRepository.java index 6faed411d3..c7a8647f5a 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/SongRepository.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/repository/SongRepository.java @@ -1,11 +1,11 @@ -package com.baeldung.repository; +package com.baeldung.jpa.repository; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; -import com.baeldung.entity.Song; +import com.baeldung.jpa.domain.Song; @Repository public interface SongRepository extends JpaRepository { diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/FooService.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/service/FooService.java similarity index 71% rename from persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/FooService.java rename to persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/service/FooService.java index 98084240ac..d449bc11a8 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/FooService.java +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/service/FooService.java @@ -1,10 +1,14 @@ -package com.baeldung.repository; +package com.baeldung.jpa.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.baeldung.jpa.domain.Foo; +import com.baeldung.jpa.repository.IFooDAO; + @Service public class FooService implements IFooService { + @Autowired private IFooDAO dao; diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/service/IFooService.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/service/IFooService.java new file mode 100644 index 0000000000..f75f33ba38 --- /dev/null +++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/jpa/service/IFooService.java @@ -0,0 +1,7 @@ +package com.baeldung.jpa.service; + +import com.baeldung.jpa.domain.Foo; + +public interface IFooService { + Foo create(Foo foo); +} \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/IFooService.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/IFooService.java deleted file mode 100644 index 6c4d36710c..0000000000 --- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/repository/IFooService.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.baeldung.repository; - -public interface IFooService { - Foo create(Foo foo); -} \ No newline at end of file diff --git a/persistence-modules/spring-data-jpa-repo/src/main/resources/fruit-data.json b/persistence-modules/spring-data-jpa-repo/src/main/resources/fruit-data.json index 6dc44e2586..b605352dc9 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/resources/fruit-data.json +++ b/persistence-modules/spring-data-jpa-repo/src/main/resources/fruit-data.json @@ -1,12 +1,12 @@ [ { - "_class": "com.baeldung.entity.Fruit", + "_class": "com.baeldung.jpa.domain.Fruit", "name": "apple", "color": "red", "id": 1 }, { - "_class": "com.baeldung.entity.Fruit", + "_class": "com.baeldung.jpa.domain.Fruit", "name": "guava", "color": "green", "id": 2 diff --git a/persistence-modules/spring-data-jpa-repo/src/main/resources/springDataConfig.xml b/persistence-modules/spring-data-jpa-repo/src/main/resources/springDataConfig.xml index e581d514a4..7746814290 100644 --- a/persistence-modules/spring-data-jpa-repo/src/main/resources/springDataConfig.xml +++ b/persistence-modules/spring-data-jpa-repo/src/main/resources/springDataConfig.xml @@ -7,5 +7,5 @@ http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd" > - + \ No newline at end of file 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/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java index b367b5fdca..51874e2bbe 100644 --- a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/ExtendedStudentRepositoryIntegrationTest.java @@ -13,11 +13,11 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; -import com.baeldung.Application; +import com.baeldung.boot.BootApplication; import com.baeldung.boot.domain.Student; @RunWith(SpringRunner.class) -@ContextConfiguration(classes = {Application.class}) +@ContextConfiguration(classes = { BootApplication.class}) @DirtiesContext public class ExtendedStudentRepositoryIntegrationTest { @Resource diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/InventoryRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/InventoryRepositoryIntegrationTest.java index e4bd3dabff..af454379c8 100644 --- a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/InventoryRepositoryIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/boot/daos/InventoryRepositoryIntegrationTest.java @@ -15,11 +15,11 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; -import com.baeldung.Application; +import com.baeldung.boot.BootApplication; import com.baeldung.boot.domain.MerchandiseEntity; @RunWith(SpringRunner.class) -@SpringBootTest(classes = Application.class) +@SpringBootTest(classes = BootApplication.class) public class InventoryRepositoryIntegrationTest { private static final String ORIGINAL_TITLE = "Pair of Pants"; diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/FooServiceIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/FooServiceIntegrationTest.java similarity index 73% rename from persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/FooServiceIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/FooServiceIntegrationTest.java index 9362b4c338..4c0fc99eb5 100644 --- a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/FooServiceIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/FooServiceIntegrationTest.java @@ -1,4 +1,4 @@ -package com.baeldung.repository; +package com.baeldung.jpa; import javax.sql.DataSource; @@ -6,11 +6,16 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; +import com.baeldung.jpa.domain.Foo; +import com.baeldung.jpa.service.IFooService; + @RunWith(SpringRunner.class) -@ContextConfiguration(classes = PersistenceConfig.class) +@ContextConfiguration(classes = { JpaApplication.class}) +@DirtiesContext public class FooServiceIntegrationTest { @Autowired diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/FruitPopulatorIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/FruitPopulatorIntegrationTest.java similarity index 86% rename from persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/FruitPopulatorIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/FruitPopulatorIntegrationTest.java index 4d3661e717..e321b1271e 100644 --- a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/FruitPopulatorIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/FruitPopulatorIntegrationTest.java @@ -1,38 +1,39 @@ -package com.baeldung.repository; - -import static org.junit.Assert.assertEquals; - -import java.util.List; - -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 com.baeldung.entity.Fruit; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class FruitPopulatorIntegrationTest { - - @Autowired - private FruitRepository fruitRepository; - - @Test - public void givenFruitJsonPopulatorThenShouldInsertRecordOnStart() { - - List fruits = fruitRepository.findAll(); - assertEquals("record count is not matching", 2, fruits.size()); - - fruits.forEach(fruit -> { - if (1 == fruit.getId()) { - assertEquals("apple", fruit.getName()); - assertEquals("red", fruit.getColor()); - } else if (2 == fruit.getId()) { - assertEquals("guava", fruit.getName()); - assertEquals("green", fruit.getColor()); - } - }); - } -} +package com.baeldung.jpa; + +import static org.junit.Assert.assertEquals; + +import java.util.List; + +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 com.baeldung.jpa.domain.Fruit; +import com.baeldung.jpa.repository.FruitRepository; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = JpaApplication.class) +public class FruitPopulatorIntegrationTest { + + @Autowired + private FruitRepository fruitRepository; + + @Test + public void givenFruitJsonPopulatorThenShouldInsertRecordOnStart() { + + List fruits = fruitRepository.findAll(); + assertEquals("record count is not matching", 2, fruits.size()); + + fruits.forEach(fruit -> { + if (1 == fruit.getId()) { + assertEquals("apple", fruit.getName()); + assertEquals("red", fruit.getColor()); + } else if (2 == fruit.getId()) { + assertEquals("guava", fruit.getName()); + assertEquals("green", fruit.getColor()); + } + }); + } +} diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/PassengerRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/PassengerRepositoryIntegrationTest.java similarity index 81% rename from persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/PassengerRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/PassengerRepositoryIntegrationTest.java index fd06710084..1676cd6406 100644 --- a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/PassengerRepositoryIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/PassengerRepositoryIntegrationTest.java @@ -1,4 +1,4 @@ -package com.baeldung.repository; +package com.baeldung.jpa; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; @@ -8,18 +8,22 @@ import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import javax.transaction.Transactional; 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.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; -import com.baeldung.entity.Passenger; +import com.baeldung.jpa.domain.Passenger; +import com.baeldung.jpa.repository.PassengerRepository; -@DataJpaTest(showSql = false) @RunWith(SpringRunner.class) +@ContextConfiguration(classes = { JpaApplication.class}) +@DirtiesContext public class PassengerRepositoryIntegrationTest { @PersistenceContext @@ -28,6 +32,7 @@ public class PassengerRepositoryIntegrationTest { private PassengerRepository repository; @Before + @Transactional public void before() { entityManager.persist(Passenger.from("Jill", "Smith")); entityManager.persist(Passenger.from("Eve", "Jackson")); @@ -36,6 +41,7 @@ public class PassengerRepositoryIntegrationTest { entityManager.persist(Passenger.from("Siya", "Kolisi")); } + @Transactional @Test public void givenPassengers_whenMatchingIgnoreCase_thenExpectedReturned() { Passenger jill = Passenger.from("Jill", "Smith"); diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/SongRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/SongRepositoryIntegrationTest.java similarity index 84% rename from persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/SongRepositoryIntegrationTest.java rename to persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/SongRepositoryIntegrationTest.java index 19362acd44..f5861ec120 100644 --- a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/repository/SongRepositoryIntegrationTest.java +++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/jpa/SongRepositoryIntegrationTest.java @@ -1,4 +1,4 @@ -package com.baeldung.repository; +package com.baeldung.jpa; import static org.junit.Assert.assertEquals; @@ -7,17 +7,19 @@ import java.util.List; 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.annotation.DirtiesContext; +import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; -import com.baeldung.entity.Song; -import com.baeldung.repository.SongRepository; +import com.baeldung.jpa.domain.Song; +import com.baeldung.jpa.repository.SongRepository; @RunWith(SpringRunner.class) -@SpringBootTest +@ContextConfiguration(classes = { JpaApplication.class }) @Sql(scripts = { "/test-song-data.sql" }) +@DirtiesContext public class SongRepositoryIntegrationTest { @Autowired private SongRepository songRepository;