diff --git a/core-java-11/pom.xml b/core-java-11/pom.xml
index 4dcab49867..bfcb7bd81a 100644
--- a/core-java-11/pom.xml
+++ b/core-java-11/pom.xml
@@ -21,8 +21,8 @@
maven-compiler-plugin
${maven-compiler-plugin.version}
- ${maven.compiler.source.version}
- ${maven.compiler.target.version}
+ 10
+ 10
diff --git a/spring-data-jpa/src/main/java/com/baeldung/Application.java b/spring-data-jpa/src/main/java/com/baeldung/Application.java
index 43888c2d67..4e14f94311 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/Application.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/Application.java
@@ -1,14 +1,17 @@
package com.baeldung;
+import com.baeldung.dao.repositories.impl.ExtendedRepositoryImpl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.ApplicationContext;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@SpringBootApplication
+@EnableJpaRepositories(repositoryBaseClass = ExtendedRepositoryImpl.class)
public class Application {
- private static ApplicationContext applicationContext;
public static void main(String[] args) {
- applicationContext = SpringApplication.run(Application.class, args);
+ SpringApplication.run(Application.class, args);
}
+
}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/spring/PersistenceConfig.java b/spring-data-jpa/src/main/java/com/baeldung/config/PersistenceConfiguration.java
similarity index 57%
rename from spring-data-jpa/src/main/java/org/baeldung/spring/PersistenceConfig.java
rename to spring-data-jpa/src/main/java/com/baeldung/config/PersistenceConfiguration.java
index 1696025590..16407e510a 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/spring/PersistenceConfig.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/config/PersistenceConfiguration.java
@@ -1,16 +1,20 @@
-package org.baeldung.spring;
+package com.baeldung.config;
+import com.baeldung.services.IBarService;
+import com.baeldung.services.impl.BarSpringDataJpaService;
import com.google.common.base.Preconditions;
+import com.baeldung.dao.repositories.impl.ExtendedRepositoryImpl;
+import com.baeldung.services.IFooService;
+import com.baeldung.services.impl.FooService;
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.context.annotation.*;
import org.springframework.core.env.Environment;
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
+import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
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.JpaVendorAdapter;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
@@ -20,32 +24,31 @@ import javax.sql.DataSource;
import java.util.Properties;
@Configuration
+@ComponentScan({"com.baeldung.dao", "com.baeldung.services"})
@EnableTransactionManagement
-@PropertySource({ "classpath:persistence-${envTarget:h2}.properties" })
-@ComponentScan({ "org.baeldung.persistence" })
-// @ImportResource("classpath*:springDataPersistenceConfig.xml")
-@EnableJpaRepositories(basePackages = "org.baeldung.persistence.dao")
-public class PersistenceConfig {
+@EnableJpaRepositories(basePackages = {"com.baeldung.dao"}, repositoryBaseClass = ExtendedRepositoryImpl.class)
+@EnableJpaAuditing
+@PropertySource("classpath:persistence.properties")
+public class PersistenceConfiguration {
@Autowired
private Environment env;
- public PersistenceConfig() {
+ public PersistenceConfiguration() {
super();
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
- final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
- em.setDataSource(dataSource());
- em.setPackagesToScan(new String[] { "org.baeldung.persistence.model" });
+ final LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
+ emf.setDataSource(dataSource());
+ emf.setPackagesToScan("com.baeldung.domain");
- final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
- // vendorAdapter.set
- em.setJpaVendorAdapter(vendorAdapter);
- em.setJpaProperties(additionalProperties());
+ final JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
+ emf.setJpaVendorAdapter(vendorAdapter);
+ emf.setJpaProperties(hibernateProperties());
- return em;
+ return emf;
}
@Bean
@@ -63,7 +66,6 @@ public class PersistenceConfig {
public PlatformTransactionManager transactionManager() {
final JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
-
return transactionManager;
}
@@ -72,11 +74,28 @@ public class PersistenceConfig {
return new PersistenceExceptionTranslationPostProcessor();
}
- final Properties additionalProperties() {
+ @Bean
+ public IBarService barSpringDataJpaService() {
+ return new BarSpringDataJpaService();
+ }
+
+ @Bean
+ public IFooService fooService() {
+ return new FooService();
+ }
+
+ private final Properties hibernateProperties() {
final Properties hibernateProperties = new Properties();
hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
+
+ hibernateProperties.setProperty("hibernate.show_sql", "true");
+ // hibernateProperties.setProperty("hibernate.format_sql", "true");
// hibernateProperties.setProperty("hibernate.globally_quoted_identifiers", "true");
+
+ // Envers properties
+ hibernateProperties.setProperty("org.hibernate.envers.audit_table_suffix", env.getProperty("envers.audit_table_suffix"));
+
return hibernateProperties;
}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/config/ProductConfig.java b/spring-data-jpa/src/main/java/com/baeldung/config/PersistenceProductConfiguration.java
similarity index 84%
rename from spring-data-jpa/src/main/java/org/baeldung/config/ProductConfig.java
rename to spring-data-jpa/src/main/java/com/baeldung/config/PersistenceProductConfiguration.java
index 13f8f4b27c..207fba9bc5 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/config/ProductConfig.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/config/PersistenceProductConfiguration.java
@@ -1,9 +1,6 @@
-package org.baeldung.config;
-
-import java.util.HashMap;
-
-import javax.sql.DataSource;
+package com.baeldung.config;
+import com.google.common.base.Preconditions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -16,16 +13,17 @@ import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
-import com.google.common.base.Preconditions;
+import javax.sql.DataSource;
+import java.util.HashMap;
@Configuration
-@PropertySource({ "classpath:persistence-multiple-db.properties" })
-@EnableJpaRepositories(basePackages = "org.baeldung.persistence.multiple.dao.product", entityManagerFactoryRef = "productEntityManager", transactionManagerRef = "productTransactionManager")
-public class ProductConfig {
+@PropertySource({"classpath:persistence-multiple-db.properties"})
+@EnableJpaRepositories(basePackages = "com.baeldung.dao.repositories.product", entityManagerFactoryRef = "productEntityManager", transactionManagerRef = "productTransactionManager")
+public class PersistenceProductConfiguration {
@Autowired
private Environment env;
- public ProductConfig() {
+ public PersistenceProductConfiguration() {
super();
}
@@ -35,7 +33,7 @@ public class ProductConfig {
public LocalContainerEntityManagerFactoryBean productEntityManager() {
final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(productDataSource());
- em.setPackagesToScan(new String[] { "org.baeldung.persistence.multiple.model.product" });
+ em.setPackagesToScan("com.baeldung.domain.product");
final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
diff --git a/spring-data-jpa/src/main/java/org/baeldung/config/UserConfig.java b/spring-data-jpa/src/main/java/com/baeldung/config/PersistenceUserConfiguration.java
similarity index 85%
rename from spring-data-jpa/src/main/java/org/baeldung/config/UserConfig.java
rename to spring-data-jpa/src/main/java/com/baeldung/config/PersistenceUserConfiguration.java
index 8e85f5d8e0..dd32477755 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/config/UserConfig.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/config/PersistenceUserConfiguration.java
@@ -1,9 +1,6 @@
-package org.baeldung.config;
-
-import java.util.HashMap;
-
-import javax.sql.DataSource;
+package com.baeldung.config;
+import com.google.common.base.Preconditions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -17,16 +14,17 @@ import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.PlatformTransactionManager;
-import com.google.common.base.Preconditions;
+import javax.sql.DataSource;
+import java.util.HashMap;
@Configuration
-@PropertySource({ "classpath:persistence-multiple-db.properties" })
-@EnableJpaRepositories(basePackages = "org.baeldung.persistence.multiple.dao.user", entityManagerFactoryRef = "userEntityManager", transactionManagerRef = "userTransactionManager")
-public class UserConfig {
+@PropertySource({"classpath:persistence-multiple-db.properties"})
+@EnableJpaRepositories(basePackages = "com.baeldung.dao.repositories.user", entityManagerFactoryRef = "userEntityManager", transactionManagerRef = "userTransactionManager")
+public class PersistenceUserConfiguration {
@Autowired
private Environment env;
- public UserConfig() {
+ public PersistenceUserConfiguration() {
super();
}
@@ -37,7 +35,7 @@ public class UserConfig {
public LocalContainerEntityManagerFactoryBean userEntityManager() {
final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(userDataSource());
- em.setPackagesToScan(new String[] { "org.baeldung.persistence.multiple.model.user" });
+ em.setPackagesToScan("com.baeldung.domain.user");
final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/dao/IFooDao.java b/spring-data-jpa/src/main/java/com/baeldung/dao/IFooDao.java
similarity index 81%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/dao/IFooDao.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/IFooDao.java
index c6d51e263b..bb3c229945 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/dao/IFooDao.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/IFooDao.java
@@ -1,6 +1,6 @@
-package org.baeldung.persistence.dao;
+package com.baeldung.dao;
-import org.baeldung.persistence.model.Foo;
+import com.baeldung.domain.Foo;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
diff --git a/spring-data-jpa/src/main/java/com/baeldung/repository/ArticleRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ArticleRepository.java
similarity index 95%
rename from spring-data-jpa/src/main/java/com/baeldung/repository/ArticleRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ArticleRepository.java
index 4e1b109430..8402c099d9 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/repository/ArticleRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ArticleRepository.java
@@ -1,4 +1,4 @@
-package com.baeldung.repository;
+package com.baeldung.dao.repositories;
import com.baeldung.domain.Article;
import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/spring-data-jpa/src/main/java/com/baeldung/repository/CustomItemRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/CustomItemRepository.java
similarity index 83%
rename from spring-data-jpa/src/main/java/com/baeldung/repository/CustomItemRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/CustomItemRepository.java
index 91eddb800a..ba077ccf1f 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/repository/CustomItemRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/CustomItemRepository.java
@@ -1,15 +1,15 @@
-package com.baeldung.repository;
-
-import org.springframework.stereotype.Repository;
-
-import com.baeldung.domain.Item;
-
-@Repository
-public interface CustomItemRepository {
-
- void deleteCustom(Item entity);
-
- Item findItemById(Long id);
-
- void findThenDelete(Long id);
-}
+package com.baeldung.dao.repositories;
+
+import org.springframework.stereotype.Repository;
+
+import com.baeldung.domain.Item;
+
+@Repository
+public interface CustomItemRepository {
+
+ void deleteCustom(Item entity);
+
+ Item findItemById(Long id);
+
+ void findThenDelete(Long id);
+}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/repository/CustomItemTypeRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/CustomItemTypeRepository.java
similarity index 82%
rename from spring-data-jpa/src/main/java/com/baeldung/repository/CustomItemTypeRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/CustomItemTypeRepository.java
index 77bbf294a0..81ebdf3fda 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/repository/CustomItemTypeRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/CustomItemTypeRepository.java
@@ -1,13 +1,13 @@
-package com.baeldung.repository;
-
-import org.springframework.stereotype.Repository;
-
-import com.baeldung.domain.ItemType;
-
-@Repository
-public interface CustomItemTypeRepository {
-
- void deleteCustom(ItemType entity);
-
- void findThenDelete(Long id);
-}
+package com.baeldung.dao.repositories;
+
+import org.springframework.stereotype.Repository;
+
+import com.baeldung.domain.ItemType;
+
+@Repository
+public interface CustomItemTypeRepository {
+
+ void deleteCustom(ItemType entity);
+
+ void findThenDelete(Long id);
+}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ExtendedRepository.java
similarity index 69%
rename from spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ExtendedRepository.java
index 9c9c12029a..9e82f02fa6 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ExtendedRepository.java
@@ -1,4 +1,4 @@
-package org.baeldung.extended.persistence.dao;
+package com.baeldung.dao.repositories;
import java.io.Serializable;
import java.util.List;
@@ -8,5 +8,7 @@ import org.springframework.data.repository.NoRepositoryBean;
@NoRepositoryBean
public interface ExtendedRepository extends JpaRepository {
- public List findByAttributeContainsText(String attributeName, String text);
+
+ List findByAttributeContainsText(String attributeName, String text);
+
}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ExtendedStudentRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ExtendedStudentRepository.java
new file mode 100644
index 0000000000..199e4e5ff6
--- /dev/null
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ExtendedStudentRepository.java
@@ -0,0 +1,6 @@
+package com.baeldung.dao.repositories;
+
+import com.baeldung.domain.Student;
+
+public interface ExtendedStudentRepository extends ExtendedRepository {
+}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/persistence/dao/IBarCrudRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/IBarCrudRepository.java
similarity index 68%
rename from spring-data-jpa/src/main/java/com/baeldung/persistence/dao/IBarCrudRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/IBarCrudRepository.java
index e7941e7093..54a7d77691 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/persistence/dao/IBarCrudRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/IBarCrudRepository.java
@@ -1,6 +1,6 @@
-package com.baeldung.persistence.dao;
+package com.baeldung.dao.repositories;
-import com.baeldung.persistence.model.Bar;
+import com.baeldung.domain.Bar;
import org.springframework.data.repository.CrudRepository;
import java.io.Serializable;
diff --git a/spring-data-jpa/src/main/java/com/baeldung/repository/ItemTypeRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ItemTypeRepository.java
similarity index 87%
rename from spring-data-jpa/src/main/java/com/baeldung/repository/ItemTypeRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ItemTypeRepository.java
index c3146aa297..2af83bc322 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/repository/ItemTypeRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ItemTypeRepository.java
@@ -1,10 +1,10 @@
-package com.baeldung.repository;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-import com.baeldung.domain.ItemType;
-
-@Repository
-public interface ItemTypeRepository extends JpaRepository, CustomItemTypeRepository, CustomItemRepository {
-}
+package com.baeldung.dao.repositories;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import com.baeldung.domain.ItemType;
+
+@Repository
+public interface ItemTypeRepository extends JpaRepository, CustomItemTypeRepository, CustomItemRepository {
+}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/repository/LocationRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/LocationRepository.java
similarity index 86%
rename from spring-data-jpa/src/main/java/com/baeldung/repository/LocationRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/LocationRepository.java
index f119ff916b..27bbe27af0 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/repository/LocationRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/LocationRepository.java
@@ -1,4 +1,4 @@
-package com.baeldung.repository;
+package com.baeldung.dao.repositories;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
diff --git a/spring-data-jpa/src/main/java/com/baeldung/repository/ReadOnlyLocationRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ReadOnlyLocationRepository.java
similarity index 87%
rename from spring-data-jpa/src/main/java/com/baeldung/repository/ReadOnlyLocationRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ReadOnlyLocationRepository.java
index 2107712484..8f68cdbbe5 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/repository/ReadOnlyLocationRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/ReadOnlyLocationRepository.java
@@ -1,15 +1,15 @@
-package com.baeldung.repository;
-
-import java.util.Optional;
-
-import org.springframework.data.repository.Repository;
-
-import com.baeldung.domain.Location;
-
-@org.springframework.stereotype.Repository
-public interface ReadOnlyLocationRepository extends Repository {
-
- Optional findById(Long id);
-
- Location save(Location location);
-}
+package com.baeldung.dao.repositories;
+
+import java.util.Optional;
+
+import org.springframework.data.repository.Repository;
+
+import com.baeldung.domain.Location;
+
+@org.springframework.stereotype.Repository
+public interface ReadOnlyLocationRepository extends Repository {
+
+ Optional findById(Long id);
+
+ Location save(Location location);
+}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/repository/StoreRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/StoreRepository.java
similarity index 87%
rename from spring-data-jpa/src/main/java/com/baeldung/repository/StoreRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/StoreRepository.java
index 939ca1dacb..9318c32ee9 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/repository/StoreRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/StoreRepository.java
@@ -1,13 +1,13 @@
-package com.baeldung.repository;
-
-import java.util.List;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-import com.baeldung.domain.Store;
-
-@Repository
-public interface StoreRepository extends JpaRepository {
- List findStoreByLocationId(Long locationId);
-}
+package com.baeldung.dao.repositories;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import com.baeldung.domain.Store;
+
+@Repository
+public interface StoreRepository extends JpaRepository {
+ List findStoreByLocationId(Long locationId);
+}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/repository/impl/CustomItemRepositoryImpl.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/impl/CustomItemRepositoryImpl.java
similarity index 85%
rename from spring-data-jpa/src/main/java/com/baeldung/repository/impl/CustomItemRepositoryImpl.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/impl/CustomItemRepositoryImpl.java
index 44492a8f35..53def88af0 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/repository/impl/CustomItemRepositoryImpl.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/impl/CustomItemRepositoryImpl.java
@@ -1,32 +1,32 @@
-package com.baeldung.repository.impl;
-
-import javax.persistence.EntityManager;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Repository;
-
-import com.baeldung.domain.Item;
-import com.baeldung.repository.CustomItemRepository;
-
-@Repository
-public class CustomItemRepositoryImpl implements CustomItemRepository {
-
- @Autowired
- private EntityManager entityManager;
-
- @Override
- public void deleteCustom(Item item) {
- entityManager.remove(item);
- }
-
- @Override
- public Item findItemById(Long id) {
- return entityManager.find(Item.class, id);
- }
-
- @Override
- public void findThenDelete(Long id) {
- final Item item = entityManager.find(Item.class, id);
- entityManager.remove(item);
- }
-}
+package com.baeldung.dao.repositories.impl;
+
+import javax.persistence.EntityManager;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+import com.baeldung.domain.Item;
+import com.baeldung.dao.repositories.CustomItemRepository;
+
+@Repository
+public class CustomItemRepositoryImpl implements CustomItemRepository {
+
+ @Autowired
+ private EntityManager entityManager;
+
+ @Override
+ public void deleteCustom(Item item) {
+ entityManager.remove(item);
+ }
+
+ @Override
+ public Item findItemById(Long id) {
+ return entityManager.find(Item.class, id);
+ }
+
+ @Override
+ public void findThenDelete(Long id) {
+ final Item item = entityManager.find(Item.class, id);
+ entityManager.remove(item);
+ }
+}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/repository/impl/CustomItemTypeRepositoryImpl.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/impl/CustomItemTypeRepositoryImpl.java
similarity index 86%
rename from spring-data-jpa/src/main/java/com/baeldung/repository/impl/CustomItemTypeRepositoryImpl.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/impl/CustomItemTypeRepositoryImpl.java
index 594fd24ea9..2b49f2380c 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/repository/impl/CustomItemTypeRepositoryImpl.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/impl/CustomItemTypeRepositoryImpl.java
@@ -1,31 +1,31 @@
-package com.baeldung.repository.impl;
-
-import javax.persistence.EntityManager;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Repository;
-
-import com.baeldung.domain.ItemType;
-import com.baeldung.repository.CustomItemTypeRepository;
-
-@Repository
-public class CustomItemTypeRepositoryImpl implements CustomItemTypeRepository {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(CustomItemTypeRepositoryImpl.class);
-
- @Autowired
- private EntityManager entityManager;
-
- @Override
- public void deleteCustom(ItemType itemType) {
- entityManager.remove(itemType);
- }
-
- @Override
- public void findThenDelete(Long id) {
- ItemType itemTypeToDelete = entityManager.find(ItemType.class, id);
- entityManager.remove(itemTypeToDelete);
- }
-}
+package com.baeldung.dao.repositories.impl;
+
+import javax.persistence.EntityManager;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+import com.baeldung.domain.ItemType;
+import com.baeldung.dao.repositories.CustomItemTypeRepository;
+
+@Repository
+public class CustomItemTypeRepositoryImpl implements CustomItemTypeRepository {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomItemTypeRepositoryImpl.class);
+
+ @Autowired
+ private EntityManager entityManager;
+
+ @Override
+ public void deleteCustom(ItemType itemType) {
+ entityManager.remove(itemType);
+ }
+
+ @Override
+ public void findThenDelete(Long id) {
+ ItemType itemTypeToDelete = entityManager.find(ItemType.class, id);
+ entityManager.remove(itemTypeToDelete);
+ }
+}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepositoryImpl.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/impl/ExtendedRepositoryImpl.java
similarity index 93%
rename from spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepositoryImpl.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/impl/ExtendedRepositoryImpl.java
index 7ed652dc4d..f6f06efb51 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepositoryImpl.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/impl/ExtendedRepositoryImpl.java
@@ -1,4 +1,4 @@
-package org.baeldung.extended.persistence.dao;
+package com.baeldung.dao.repositories.impl;
import java.io.Serializable;
import java.util.List;
@@ -10,6 +10,7 @@ import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import javax.transaction.Transactional;
+import com.baeldung.dao.repositories.ExtendedRepository;
import org.springframework.data.jpa.repository.support.JpaEntityInformation;
import org.springframework.data.jpa.repository.support.SimpleJpaRepository;
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/dao/product/ProductRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/product/ProductRepository.java
similarity index 54%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/dao/product/ProductRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/product/ProductRepository.java
index bad0170a3a..7044d57e53 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/dao/product/ProductRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/product/ProductRepository.java
@@ -1,6 +1,6 @@
-package org.baeldung.persistence.multiple.dao.product;
+package com.baeldung.dao.repositories.product;
-import org.baeldung.persistence.multiple.model.product.Product;
+import com.baeldung.domain.product.Product;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProductRepository extends JpaRepository {
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/dao/user/PossessionRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/user/PossessionRepository.java
similarity index 55%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/dao/user/PossessionRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/user/PossessionRepository.java
index 34913632d8..f0eeb475c1 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/dao/user/PossessionRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/user/PossessionRepository.java
@@ -1,6 +1,6 @@
-package org.baeldung.persistence.multiple.dao.user;
+package com.baeldung.dao.repositories.user;
-import org.baeldung.persistence.multiple.model.user.Possession;
+import com.baeldung.domain.user.Possession;
import org.springframework.data.jpa.repository.JpaRepository;
public interface PossessionRepository extends JpaRepository {
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/repository/UserRepository.java b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/user/UserRepository.java
similarity index 74%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/repository/UserRepository.java
rename to spring-data-jpa/src/main/java/com/baeldung/dao/repositories/user/UserRepository.java
index 5ceb6a9f04..5bb0232e4a 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/repository/UserRepository.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/dao/repositories/user/UserRepository.java
@@ -1,6 +1,6 @@
-package org.baeldung.persistence.repository;
+package com.baeldung.dao.repositories.user;
-import org.baeldung.persistence.model.User;
+import com.baeldung.domain.user.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
@@ -8,24 +8,25 @@ 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 java.util.Collection;
import java.util.List;
+import java.util.stream.Stream;
-@Repository("userRepository")
public interface UserRepository extends JpaRepository {
+ Stream findAllByName(String name);
+
@Query("SELECT u FROM User u WHERE u.status = 1")
Collection findAllActiveUsers();
- @Query(value = "SELECT * FROM USERS u WHERE u.status = 1", nativeQuery = true)
+ @Query(value = "SELECT * FROM USERS.USERS u WHERE u.status = 1", nativeQuery = true)
Collection findAllActiveUsersNative();
@Query("SELECT u FROM User u WHERE u.status = ?1")
User findUserByStatus(Integer status);
- @Query(value = "SELECT * FROM Users u WHERE u.status = ?1", nativeQuery = true)
+ @Query(value = "SELECT * FROM USERS.Users u WHERE u.status = ?1", nativeQuery = true)
User findUserByStatusNative(Integer status);
@Query("SELECT u FROM User u WHERE u.status = ?1 and u.name = ?2")
@@ -34,7 +35,7 @@ public interface UserRepository extends JpaRepository {
@Query("SELECT u FROM User u WHERE u.status = :status and u.name = :name")
User findUserByStatusAndNameNamedParams(@Param("status") Integer status, @Param("name") String name);
- @Query(value = "SELECT * FROM Users u WHERE u.status = :status AND u.name = :name", nativeQuery = true)
+ @Query(value = "SELECT * FROM USERS.Users u WHERE u.status = :status AND u.name = :name", nativeQuery = true)
User findUserByStatusAndNameNamedParamsNative(@Param("status") Integer status, @Param("name") String name);
@Query("SELECT u FROM User u WHERE u.status = :status and u.name = :name")
@@ -46,7 +47,7 @@ public interface UserRepository extends JpaRepository {
@Query("SELECT u FROM User u WHERE u.name like :name%")
User findUserByNameLikeNamedParam(@Param("name") String name);
- @Query(value = "SELECT * FROM users u WHERE u.name LIKE ?1%", nativeQuery = true)
+ @Query(value = "SELECT * FROM USERS.users u WHERE u.name LIKE ?1%", nativeQuery = true)
User findUserByNameLikeNative(String name);
@Query(value = "SELECT u FROM User u")
@@ -55,7 +56,7 @@ public interface UserRepository extends JpaRepository {
@Query(value = "SELECT u FROM User u ORDER BY id")
Page findAllUsersWithPagination(Pageable pageable);
- @Query(value = "SELECT * FROM Users ORDER BY id", countQuery = "SELECT count(*) FROM Users", nativeQuery = true)
+ @Query(value = "SELECT * FROM USERS.Users ORDER BY id", countQuery = "SELECT count(*) FROM USERS.Users", nativeQuery = true)
Page findAllUsersWithPaginationNative(Pageable pageable);
@Modifying
@@ -63,7 +64,6 @@ public interface UserRepository extends JpaRepository {
int updateUserSetStatusForName(@Param("status") Integer status, @Param("name") String name);
@Modifying
- @Query(value = "UPDATE Users u SET u.status = ? WHERE u.name = ?", nativeQuery = true)
+ @Query(value = "UPDATE USERS.Users u SET u.status = ? WHERE u.name = ?", nativeQuery = true)
int updateUserSetStatusForNameNative(Integer status, String name);
-
}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/persistence/model/Bar.java b/spring-data-jpa/src/main/java/com/baeldung/domain/Bar.java
similarity index 98%
rename from spring-data-jpa/src/main/java/com/baeldung/persistence/model/Bar.java
rename to spring-data-jpa/src/main/java/com/baeldung/domain/Bar.java
index daa590e43c..efd297bafc 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/persistence/model/Bar.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/domain/Bar.java
@@ -1,7 +1,6 @@
-package com.baeldung.persistence.model;
+package com.baeldung.domain;
import com.google.common.collect.Sets;
-import org.baeldung.persistence.model.Foo;
import org.hibernate.annotations.OrderBy;
import org.hibernate.envers.Audited;
import org.jboss.logging.Logger;
@@ -23,31 +22,6 @@ import java.util.Set;
public class Bar implements Serializable {
private static Logger logger = Logger.getLogger(Bar.class);
-
- public enum OPERATION {
- INSERT, UPDATE, DELETE;
- private String value;
-
- OPERATION() {
- value = toString();
- }
-
- public String getValue() {
- return value;
- }
-
- public static OPERATION parse(final String value) {
- OPERATION operation = null;
- for (final OPERATION op : OPERATION.values()) {
- if (op.getValue().equals(value)) {
- operation = op;
- break;
- }
- }
- return operation;
- }
- };
-
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
@@ -55,30 +29,23 @@ public class Bar implements Serializable {
@Column(name = "name")
private String name;
-
@OneToMany(mappedBy = "bar", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@OrderBy(clause = "NAME DESC")
// @NotAudited
private Set fooSet = Sets.newHashSet();
-
@Column(name = "operation")
private String operation;
-
@Column(name = "timestamp")
private long timestamp;
-
@Column(name = "created_date", updatable = false, nullable = false)
@CreatedDate
private long createdDate;
-
@Column(name = "modified_date")
@LastModifiedDate
private long modifiedDate;
-
@Column(name = "created_by")
@CreatedBy
private String createdBy;
-
@Column(name = "modified_by")
@LastModifiedBy
private String modifiedBy;
@@ -93,12 +60,12 @@ public class Bar implements Serializable {
this.name = name;
}
- // API
-
public Set getFooSet() {
return fooSet;
}
+ // API
+
public void setFooSet(final Set fooSet) {
this.fooSet = fooSet;
}
@@ -123,6 +90,10 @@ public class Bar implements Serializable {
return OPERATION.parse(operation);
}
+ public void setOperation(final String operation) {
+ this.operation = operation;
+ }
+
public void setOperation(final OPERATION operation) {
this.operation = operation.getValue();
}
@@ -167,10 +138,6 @@ public class Bar implements Serializable {
this.modifiedBy = modifiedBy;
}
- public void setOperation(final String operation) {
- this.operation = operation;
- }
-
@Override
public int hashCode() {
final int prime = 31;
@@ -226,4 +193,28 @@ public class Bar implements Serializable {
setTimestamp((new Date()).getTime());
}
+ public enum OPERATION {
+ INSERT, UPDATE, DELETE;
+ private String value;
+
+ OPERATION() {
+ value = toString();
+ }
+
+ public static OPERATION parse(final String value) {
+ OPERATION operation = null;
+ for (final OPERATION op : OPERATION.values()) {
+ if (op.getValue().equals(value)) {
+ operation = op;
+ break;
+ }
+ }
+ return operation;
+ }
+
+ public String getValue() {
+ return value;
+ }
+ }
+
}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/persistence/model/Foo.java b/spring-data-jpa/src/main/java/com/baeldung/domain/Foo.java
similarity index 85%
rename from spring-data-jpa/src/main/java/com/baeldung/persistence/model/Foo.java
rename to spring-data-jpa/src/main/java/com/baeldung/domain/Foo.java
index 2e6c80de22..ef88840746 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/persistence/model/Foo.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/domain/Foo.java
@@ -1,11 +1,11 @@
-package com.baeldung.persistence.model;
+package com.baeldung.domain;
import org.hibernate.envers.Audited;
import javax.persistence.*;
import java.io.Serializable;
-@NamedNativeQueries({ @NamedNativeQuery(name = "callGetAllFoos", query = "CALL GetAllFoos()", resultClass = Foo.class), @NamedNativeQuery(name = "callGetFoosByName", query = "CALL GetFoosByName(:fooName)", resultClass = Foo.class) })
+@NamedNativeQueries({@NamedNativeQuery(name = "callGetAllFoos", query = "CALL GetAllFoos()", resultClass = Foo.class), @NamedNativeQuery(name = "callGetFoosByName", query = "CALL GetFoosByName(:fooName)", resultClass = Foo.class)})
@Entity
@Audited
// @Proxy(lazy = false)
@@ -16,7 +16,7 @@ public class Foo implements Serializable {
@Column(name = "id")
private long id;
- @Column(name = "name")
+ @Column(name = "name", nullable = false)
private String name;
@ManyToOne(targetEntity = Bar.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
diff --git a/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/KVTag.java b/spring-data-jpa/src/main/java/com/baeldung/domain/KVTag.java
similarity index 91%
rename from spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/KVTag.java
rename to spring-data-jpa/src/main/java/com/baeldung/domain/KVTag.java
index 1522744116..b3e7d78b30 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/KVTag.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/domain/KVTag.java
@@ -1,4 +1,4 @@
-package org.baeldung.inmemory.persistence.model;
+package com.baeldung.domain;
import javax.persistence.Embeddable;
diff --git a/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/SkillTag.java b/spring-data-jpa/src/main/java/com/baeldung/domain/SkillTag.java
similarity index 90%
rename from spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/SkillTag.java
rename to spring-data-jpa/src/main/java/com/baeldung/domain/SkillTag.java
index 490ee0a18e..1f2778c589 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/SkillTag.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/domain/SkillTag.java
@@ -1,4 +1,4 @@
-package org.baeldung.inmemory.persistence.model;
+package com.baeldung.domain;
import javax.persistence.Embeddable;
diff --git a/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/Student.java b/spring-data-jpa/src/main/java/com/baeldung/domain/Student.java
similarity index 96%
rename from spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/Student.java
rename to spring-data-jpa/src/main/java/com/baeldung/domain/Student.java
index 26772e5ca5..bd7eaeb24b 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/Student.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/domain/Student.java
@@ -1,4 +1,4 @@
-package org.baeldung.inmemory.persistence.model;
+package com.baeldung.domain;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/model/product/Product.java b/spring-data-jpa/src/main/java/com/baeldung/domain/product/Product.java
similarity index 90%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/model/product/Product.java
rename to spring-data-jpa/src/main/java/com/baeldung/domain/product/Product.java
index 8490ed397d..42e6dd8f45 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/model/product/Product.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/domain/product/Product.java
@@ -1,11 +1,11 @@
-package org.baeldung.persistence.multiple.model.product;
+package com.baeldung.domain.product;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
-@Table(schema = "spring_jpa_product")
+@Table(schema = "products")
public class Product {
@Id
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/Possession.java b/spring-data-jpa/src/main/java/com/baeldung/domain/user/Possession.java
similarity index 95%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/Possession.java
rename to spring-data-jpa/src/main/java/com/baeldung/domain/user/Possession.java
index 079888155e..614e13df36 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/Possession.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/domain/user/Possession.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence.multiple.model.user;
+package com.baeldung.domain.user;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@@ -7,7 +7,7 @@ import javax.persistence.Id;
import javax.persistence.Table;
@Entity
-@Table(schema = "spring_jpa_user")
+@Table(schema = "users")
public class Possession {
@Id
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/User.java b/spring-data-jpa/src/main/java/com/baeldung/domain/user/User.java
similarity index 75%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/User.java
rename to spring-data-jpa/src/main/java/com/baeldung/domain/user/User.java
index 61904198f5..3a8b617d9a 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/model/user/User.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/domain/user/User.java
@@ -1,30 +1,20 @@
-package org.baeldung.persistence.multiple.model.user;
+package com.baeldung.domain.user;
+import javax.persistence.*;
import java.util.List;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-
@Entity
-@Table(schema = "spring_jpa_user")
+@Table(name = "users", schema = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
-
private String name;
-
+ private int age;
@Column(unique = true, nullable = false)
private String email;
-
- private int age;
-
+ private Integer status;
@OneToMany
List possessionList;
@@ -32,6 +22,12 @@ public class User {
super();
}
+ public User(String name, String email, Integer status) {
+ this.name = name;
+ this.email = email;
+ this.status = status;
+ }
+
public int getId() {
return id;
}
@@ -56,6 +52,14 @@ public class User {
this.email = email;
}
+ public Integer getStatus() {
+ return status;
+ }
+
+ public void setStatus(Integer status) {
+ this.status = status;
+ }
+
public int getAge() {
return age;
}
@@ -78,4 +82,5 @@ public class User {
builder.append("User [name=").append(name).append(", id=").append(id).append("]");
return builder.toString();
}
+
}
\ No newline at end of file
diff --git a/spring-data-jpa/src/main/java/com/baeldung/persistence/dao/common/IOperations.java b/spring-data-jpa/src/main/java/com/baeldung/persistence/dao/common/IOperations.java
deleted file mode 100644
index 4ef99221ab..0000000000
--- a/spring-data-jpa/src/main/java/com/baeldung/persistence/dao/common/IOperations.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.baeldung.persistence.dao.common;
-
-import java.io.Serializable;
-import java.util.List;
-
-public interface IOperations {
-
- T findOne(final long id);
-
- List findAll();
-
- void create(final T entity);
-
- T update(final T entity);
-
- void delete(final T entity);
-
- void deleteById(final long entityId);
-
-}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/persistence/service/IBarService.java b/spring-data-jpa/src/main/java/com/baeldung/persistence/service/IBarService.java
deleted file mode 100644
index 21185b5990..0000000000
--- a/spring-data-jpa/src/main/java/com/baeldung/persistence/service/IBarService.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.baeldung.persistence.service;
-
-import com.baeldung.persistence.dao.common.IOperations;
-import com.baeldung.persistence.model.Bar;
-
-public interface IBarService extends IOperations {
- //
-}
diff --git a/spring-data-jpa/src/main/java/com/baeldung/services/IBarService.java b/spring-data-jpa/src/main/java/com/baeldung/services/IBarService.java
new file mode 100644
index 0000000000..7e127488db
--- /dev/null
+++ b/spring-data-jpa/src/main/java/com/baeldung/services/IBarService.java
@@ -0,0 +1,7 @@
+package com.baeldung.services;
+
+import com.baeldung.domain.Bar;
+
+public interface IBarService extends IOperations {
+ //
+}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/service/IFooService.java b/spring-data-jpa/src/main/java/com/baeldung/services/IFooService.java
similarity index 65%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/service/IFooService.java
rename to spring-data-jpa/src/main/java/com/baeldung/services/IFooService.java
index a3d16d9c15..7e16ace5b6 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/service/IFooService.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/services/IFooService.java
@@ -1,7 +1,6 @@
-package org.baeldung.persistence.service;
+package com.baeldung.services;
-import org.baeldung.persistence.IOperations;
-import org.baeldung.persistence.model.Foo;
+import com.baeldung.domain.Foo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/IOperations.java b/spring-data-jpa/src/main/java/com/baeldung/services/IOperations.java
similarity index 85%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/IOperations.java
rename to spring-data-jpa/src/main/java/com/baeldung/services/IOperations.java
index 85332899e3..d50d465639 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/IOperations.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/services/IOperations.java
@@ -1,4 +1,4 @@
-package org.baeldung.persistence;
+package com.baeldung.services;
import org.springframework.data.domain.Page;
@@ -7,12 +7,8 @@ import java.util.List;
public interface IOperations {
- // read - one
-
T findOne(final long id);
- // read - all
-
List findAll();
Page findPaginated(int page, int size);
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/service/common/AbstractService.java b/spring-data-jpa/src/main/java/com/baeldung/services/impl/AbstractService.java
similarity index 93%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/service/common/AbstractService.java
rename to spring-data-jpa/src/main/java/com/baeldung/services/impl/AbstractService.java
index 8201df7343..708524225b 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/service/common/AbstractService.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/services/impl/AbstractService.java
@@ -1,7 +1,7 @@
-package org.baeldung.persistence.service.common;
+package com.baeldung.services.impl;
+import com.baeldung.services.IOperations;
import com.google.common.collect.Lists;
-import org.baeldung.persistence.IOperations;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.repository.PagingAndSortingRepository;
diff --git a/spring-data-jpa/src/main/java/com/baeldung/persistence/service/common/AbstractSpringDataJpaService.java b/spring-data-jpa/src/main/java/com/baeldung/services/impl/AbstractSpringDataJpaService.java
similarity index 72%
rename from spring-data-jpa/src/main/java/com/baeldung/persistence/service/common/AbstractSpringDataJpaService.java
rename to spring-data-jpa/src/main/java/com/baeldung/services/impl/AbstractSpringDataJpaService.java
index b5c3120ff5..28c86bee28 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/persistence/service/common/AbstractSpringDataJpaService.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/services/impl/AbstractSpringDataJpaService.java
@@ -1,6 +1,6 @@
-package com.baeldung.persistence.service.common;
+package com.baeldung.services.impl;
-import com.baeldung.persistence.dao.common.IOperations;
+import com.baeldung.services.IOperations;
import com.google.common.collect.Lists;
import org.springframework.data.repository.CrudRepository;
import org.springframework.transaction.annotation.Transactional;
@@ -8,12 +8,12 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
import java.util.List;
-@Transactional(value = "jpaTransactionManager")
+@Transactional(value = "transactionManager")
public abstract class AbstractSpringDataJpaService implements IOperations {
@Override
public T findOne(final long id) {
- return getDao().findOne(Long.valueOf(id));
+ return getDao().findById(id).orElse(null);
}
@Override
@@ -22,8 +22,8 @@ public abstract class AbstractSpringDataJpaService imple
}
@Override
- public void create(final T entity) {
- getDao().save(entity);
+ public T create(final T entity) {
+ return getDao().save(entity);
}
@Override
@@ -38,7 +38,7 @@ public abstract class AbstractSpringDataJpaService imple
@Override
public void deleteById(final long entityId) {
- getDao().delete(Long.valueOf(entityId));
+ getDao().deleteById(entityId);
}
protected abstract CrudRepository getDao();
diff --git a/spring-data-jpa/src/main/java/com/baeldung/persistence/service/impl/BarSpringDataJpaService.java b/spring-data-jpa/src/main/java/com/baeldung/services/impl/BarSpringDataJpaService.java
similarity index 56%
rename from spring-data-jpa/src/main/java/com/baeldung/persistence/service/impl/BarSpringDataJpaService.java
rename to spring-data-jpa/src/main/java/com/baeldung/services/impl/BarSpringDataJpaService.java
index c893473e04..ca3e5f868d 100644
--- a/spring-data-jpa/src/main/java/com/baeldung/persistence/service/impl/BarSpringDataJpaService.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/services/impl/BarSpringDataJpaService.java
@@ -1,10 +1,10 @@
-package com.baeldung.persistence.service.impl;
+package com.baeldung.services.impl;
-import com.baeldung.persistence.dao.IBarCrudRepository;
-import com.baeldung.persistence.model.Bar;
-import com.baeldung.persistence.service.IBarService;
-import com.baeldung.persistence.service.common.AbstractSpringDataJpaService;
+import com.baeldung.domain.Bar;
+import com.baeldung.dao.repositories.IBarCrudRepository;
+import com.baeldung.services.IBarService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
import org.springframework.data.repository.CrudRepository;
import java.io.Serializable;
@@ -23,4 +23,8 @@ public class BarSpringDataJpaService extends AbstractSpringDataJpaService i
return dao;
}
+ @Override
+ public Page findPaginated(int page, int size) {
+ throw new UnsupportedOperationException("Not implemented yet");
+ }
}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/service/impl/FooService.java b/spring-data-jpa/src/main/java/com/baeldung/services/impl/FooService.java
similarity index 81%
rename from spring-data-jpa/src/main/java/org/baeldung/persistence/service/impl/FooService.java
rename to spring-data-jpa/src/main/java/com/baeldung/services/impl/FooService.java
index f1360b08cc..319ab3a825 100644
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/service/impl/FooService.java
+++ b/spring-data-jpa/src/main/java/com/baeldung/services/impl/FooService.java
@@ -1,10 +1,9 @@
-package org.baeldung.persistence.service.impl;
+package com.baeldung.services.impl;
import com.google.common.collect.Lists;
-import org.baeldung.persistence.dao.IFooDao;
-import org.baeldung.persistence.model.Foo;
-import org.baeldung.persistence.service.IFooService;
-import org.baeldung.persistence.service.common.AbstractService;
+import com.baeldung.dao.IFooDao;
+import com.baeldung.domain.Foo;
+import com.baeldung.services.IFooService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
diff --git a/spring-data-jpa/src/main/java/com/baeldung/spring/PersistenceConfig.java b/spring-data-jpa/src/main/java/com/baeldung/spring/PersistenceConfig.java
deleted file mode 100644
index 75583b3eb9..0000000000
--- a/spring-data-jpa/src/main/java/com/baeldung/spring/PersistenceConfig.java
+++ /dev/null
@@ -1,169 +0,0 @@
-package com.baeldung.spring;
-
-import com.baeldung.persistence.dao.IBarAuditableDao;
-import com.baeldung.persistence.dao.IBarDao;
-import com.baeldung.persistence.dao.IFooAuditableDao;
-import com.baeldung.persistence.dao.IFooDao;
-import com.baeldung.persistence.dao.impl.*;
-import com.baeldung.persistence.service.IBarAuditableService;
-import com.baeldung.persistence.service.IBarService;
-import com.baeldung.persistence.service.IFooAuditableService;
-import com.baeldung.persistence.service.IFooService;
-import com.baeldung.persistence.service.impl.*;
-import com.google.common.base.Preconditions;
-import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
-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.EnableJpaAuditing;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.orm.hibernate4.HibernateTransactionManager;
-import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
-import org.springframework.orm.jpa.JpaTransactionManager;
-import org.springframework.orm.jpa.JpaVendorAdapter;
-import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
-import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import javax.sql.DataSource;
-import java.util.Properties;
-
-@Configuration
-@EnableTransactionManagement
-@EnableJpaRepositories(basePackages = { "com.baeldung.persistence" }, transactionManagerRef = "jpaTransactionManager")
-@EnableJpaAuditing
-@PropertySource({ "classpath:persistence-mysql.properties" })
-@ComponentScan({ "com.baeldung.persistence" })
-public class PersistenceConfig {
-
- @Autowired
- private Environment env;
-
- public PersistenceConfig() {
- super();
- }
-
- @Bean
- public LocalSessionFactoryBean sessionFactory() {
- final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
- sessionFactory.setDataSource(restDataSource());
- sessionFactory.setPackagesToScan(new String[] { "com.baeldung.persistence.model" });
- sessionFactory.setHibernateProperties(hibernateProperties());
-
- return sessionFactory;
- }
-
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
- final LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
- emf.setDataSource(restDataSource());
- emf.setPackagesToScan(new String[] { "com.baeldung.persistence.model" });
-
- final JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
- emf.setJpaVendorAdapter(vendorAdapter);
- emf.setJpaProperties(hibernateProperties());
-
- return emf;
- }
-
- @Bean
- public DataSource restDataSource() {
- final BasicDataSource dataSource = new BasicDataSource();
- dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName")));
- dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url")));
- dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user")));
- dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass")));
-
- return dataSource;
- }
-
- @Bean
- public PlatformTransactionManager hibernateTransactionManager() {
- final HibernateTransactionManager transactionManager = new HibernateTransactionManager();
- transactionManager.setSessionFactory(sessionFactory().getObject());
- return transactionManager;
- }
-
- @Bean
- public PlatformTransactionManager jpaTransactionManager() {
- final JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
- return transactionManager;
- }
-
- @Bean
- public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
- return new PersistenceExceptionTranslationPostProcessor();
- }
-
- @Bean
- public IBarService barJpaService() {
- return new BarJpaService();
- }
-
- @Bean
- public IBarService barSpringDataJpaService() {
- return new BarSpringDataJpaService();
- }
-
- @Bean
- public IFooService fooHibernateService() {
- return new FooService();
- }
-
- @Bean
- public IBarAuditableService barHibernateAuditableService() {
- return new BarAuditableService();
- }
-
- @Bean
- public IFooAuditableService fooHibernateAuditableService() {
- return new FooAuditableService();
- }
-
- @Bean
- public IBarDao barJpaDao() {
- return new BarJpaDao();
- }
-
- @Bean
- public IBarDao barHibernateDao() {
- return new BarDao();
- }
-
- @Bean
- public IBarAuditableDao barHibernateAuditableDao() {
- return new BarAuditableDao();
- }
-
- @Bean
- public IFooDao fooHibernateDao() {
- return new FooDao();
- }
-
- @Bean
- public IFooAuditableDao fooHibernateAuditableDao() {
- return new FooAuditableDao();
- }
-
- private final Properties hibernateProperties() {
- final Properties hibernateProperties = new Properties();
- hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
- hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
-
- hibernateProperties.setProperty("hibernate.show_sql", "true");
- // hibernateProperties.setProperty("hibernate.format_sql", "true");
- // hibernateProperties.setProperty("hibernate.globally_quoted_identifiers", "true");
-
- // Envers properties
- hibernateProperties.setProperty("org.hibernate.envers.audit_table_suffix", env.getProperty("envers.audit_table_suffix"));
-
- return hibernateProperties;
- }
-
-}
\ No newline at end of file
diff --git a/spring-data-jpa/src/main/java/org/baeldung/config/H2JpaConfig.java b/spring-data-jpa/src/main/java/org/baeldung/config/H2JpaConfig.java
deleted file mode 100644
index 9f3dbeb788..0000000000
--- a/spring-data-jpa/src/main/java/org/baeldung/config/H2JpaConfig.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.baeldung.config;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.core.env.Environment;
-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;
-import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import javax.persistence.EntityManagerFactory;
-import javax.sql.DataSource;
-import java.util.Properties;
-
-@Configuration
-@EnableJpaRepositories(basePackages = {"org.baeldung.repository" })
-@PropertySource("classpath:persistence-generic-entity.properties")
-@EnableTransactionManagement
-public class H2JpaConfig {
-
- @Autowired
- private Environment env;
-
- @Bean
- public DataSource dataSource() {
- final DriverManagerDataSource dataSource = new DriverManagerDataSource();
- dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName"));
- dataSource.setUrl(env.getProperty("jdbc.url"));
- dataSource.setUsername(env.getProperty("jdbc.user"));
- dataSource.setPassword(env.getProperty("jdbc.pass"));
-
- return dataSource;
- }
-
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
- final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
- em.setDataSource(dataSource());
- em.setPackagesToScan("org.baeldung.persistence.model");
- em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
- em.setJpaProperties(additionalProperties());
- return em;
- }
-
- @Bean
- JpaTransactionManager transactionManager(final EntityManagerFactory entityManagerFactory) {
- final JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(entityManagerFactory);
- return transactionManager;
- }
-
- final Properties additionalProperties() {
- final Properties hibernateProperties = new Properties();
-
- hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
- hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
- hibernateProperties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
-
- return hibernateProperties;
- }
-
-}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfigL2Cache.java b/spring-data-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfigL2Cache.java
deleted file mode 100644
index a236cf2331..0000000000
--- a/spring-data-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfigL2Cache.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package org.baeldung.config;
-
-import com.google.common.base.Preconditions;
-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;
-import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import javax.persistence.EntityManagerFactory;
-import javax.sql.DataSource;
-import java.util.Properties;
-
-@Configuration
-@EnableTransactionManagement
-@PropertySource({ "classpath:persistence-h2.properties" })
-@ComponentScan({ "org.baeldung.persistence" })
-@EnableJpaRepositories(basePackages = { "org.baeldung.persistence.dao", "org.baeldung.persistence.repository" })
-public class PersistenceJPAConfigL2Cache {
-
- @Autowired
- private Environment env;
-
- public PersistenceJPAConfigL2Cache() {
- super();
- }
-
- // beans
-
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
- final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
- em.setDataSource(dataSource());
- em.setPackagesToScan(getPackagesToScan());
-
- final HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
- em.setJpaVendorAdapter(vendorAdapter);
- em.setJpaProperties(additionalProperties());
-
- return em;
- }
-
- protected String[] getPackagesToScan() {
- return new String[] { "org.baeldung.persistence.model" };
- }
-
- @Bean
- public DataSource dataSource() {
- final DriverManagerDataSource dataSource = new DriverManagerDataSource();
- dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName")));
- dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url")));
- dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user")));
-
- return dataSource;
- }
-
- @Bean
- public PlatformTransactionManager transactionManager(final EntityManagerFactory emf) {
- final JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(emf);
- return transactionManager;
- }
-
- @Bean
- public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
- return new PersistenceExceptionTranslationPostProcessor();
- }
-
- final Properties additionalProperties() {
- final Properties hibernateProperties = new Properties();
- hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
- hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
- hibernateProperties.setProperty("hibernate.cache.use_second_level_cache", env.getProperty("hibernate.cache.use_second_level_cache"));
- hibernateProperties.setProperty("hibernate.cache.use_query_cache", env.getProperty("hibernate.cache.use_query_cache"));
- hibernateProperties.setProperty("hibernate.cache.region.factory_class", env.getProperty("hibernate.cache.region.factory_class"));
- hibernateProperties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
- return hibernateProperties;
- }
-
-}
\ No newline at end of file
diff --git a/spring-data-jpa/src/main/java/org/baeldung/config/StudentJPAH2Config.java b/spring-data-jpa/src/main/java/org/baeldung/config/StudentJPAH2Config.java
deleted file mode 100644
index 439c6cb602..0000000000
--- a/spring-data-jpa/src/main/java/org/baeldung/config/StudentJPAH2Config.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.baeldung.config;
-
-import java.util.Properties;
-
-import javax.persistence.EntityManagerFactory;
-import javax.sql.DataSource;
-
-import org.baeldung.extended.persistence.dao.ExtendedRepositoryImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.core.env.Environment;
-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;
-import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-@Configuration
-@EnableJpaRepositories(basePackages = "org.baeldung.extended.persistence.dao", repositoryBaseClass = ExtendedRepositoryImpl.class)
-@PropertySource("persistence-student-h2.properties")
-@EnableTransactionManagement
-public class StudentJPAH2Config {
-
- @Autowired
- private Environment env;
-
- @Bean
- public DataSource dataSource() {
- final DriverManagerDataSource dataSource = new DriverManagerDataSource();
- dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName"));
- dataSource.setUrl(env.getProperty("jdbc.url"));
- dataSource.setUsername(env.getProperty("jdbc.user"));
- dataSource.setPassword(env.getProperty("jdbc.pass"));
-
- return dataSource;
- }
-
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
- final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
- em.setDataSource(dataSource());
- em.setPackagesToScan(new String[] { "org.baeldung.inmemory.persistence.model" });
- em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
- em.setJpaProperties(additionalProperties());
- return em;
- }
-
- @Bean
- JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
- JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(entityManagerFactory);
- return transactionManager;
- }
-
- final Properties additionalProperties() {
- final Properties hibernateProperties = new Properties();
-
- hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
- hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
- hibernateProperties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
- hibernateProperties.setProperty("hibernate.cache.use_second_level_cache", env.getProperty("hibernate.cache.use_second_level_cache"));
- hibernateProperties.setProperty("hibernate.cache.use_query_cache", env.getProperty("hibernate.cache.use_query_cache"));
-
- return hibernateProperties;
- }
-}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedStudentRepository.java b/spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedStudentRepository.java
deleted file mode 100644
index 7e2efc72bc..0000000000
--- a/spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedStudentRepository.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.baeldung.extended.persistence.dao;
-
-import org.baeldung.inmemory.persistence.model.Student;
-
-public interface ExtendedStudentRepository extends ExtendedRepository {
-}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/model/Foo.java b/spring-data-jpa/src/main/java/org/baeldung/persistence/model/Foo.java
deleted file mode 100644
index c80aac6e0c..0000000000
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/model/Foo.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.baeldung.persistence.model;
-
-import javax.persistence.*;
-import java.io.Serializable;
-
-@Entity
-public class Foo implements Serializable {
-
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private long id;
-
- @Column(nullable = false)
- private String name;
-
- public Foo() {
- super();
- }
-
- public Foo(final String name) {
- super();
-
- this.name = name;
- }
-
- // API
-
- public long getId() {
- return id;
- }
-
- public void setId(final long id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(final String name) {
- this.name = name;
- }
-
- //
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(final Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- final Foo other = (Foo) obj;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
- }
-
- @Override
- public String toString() {
- final StringBuilder builder = new StringBuilder();
- builder.append("Foo [name=").append(name).append("]");
- return builder.toString();
- }
-
-}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/model/User.java b/spring-data-jpa/src/main/java/org/baeldung/persistence/model/User.java
deleted file mode 100644
index f84a10cf76..0000000000
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/model/User.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.baeldung.persistence.model;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = "users")
-public class User {
-
- @Id
- @GeneratedValue
- private Integer id;
- private String name;
- private Integer status;
-
- public User() {
- }
-
- public User(String name, Integer status) {
- this.name = name;
- this.status = status;
- }
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public Integer getStatus() {
- return status;
- }
-
- public void setStatus(Integer status) {
- this.status = status;
- }
-}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/dao/user/UserRepository.java b/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/dao/user/UserRepository.java
deleted file mode 100644
index e250a291bc..0000000000
--- a/spring-data-jpa/src/main/java/org/baeldung/persistence/multiple/dao/user/UserRepository.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.baeldung.persistence.multiple.dao.user;
-
-import org.baeldung.persistence.multiple.model.user.User;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface UserRepository extends JpaRepository {
-
-}
diff --git a/spring-data-jpa/src/main/java/org/baeldung/repository/UserRepository.java b/spring-data-jpa/src/main/java/org/baeldung/repository/UserRepository.java
deleted file mode 100644
index 623e009b6d..0000000000
--- a/spring-data-jpa/src/main/java/org/baeldung/repository/UserRepository.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.baeldung.repository;
-
-import org.baeldung.persistence.model.User;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-import java.util.stream.Stream;
-
-@Repository("userRepository")
-public interface UserRepository extends JpaRepository {
-
- Stream findAllByName(String name);
-
-}
diff --git a/spring-data-jpa/src/test/resources/application.properties b/spring-data-jpa/src/main/resources/application.properties
similarity index 100%
rename from spring-data-jpa/src/test/resources/application.properties
rename to spring-data-jpa/src/main/resources/application.properties
diff --git a/spring-data-jpa/src/main/resources/persistence-generic-entity.properties b/spring-data-jpa/src/main/resources/persistence-generic-entity.properties
deleted file mode 100644
index b19304cb1f..0000000000
--- a/spring-data-jpa/src/main/resources/persistence-generic-entity.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-jdbc.driverClassName=org.h2.Driver
-jdbc.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
-jdbc.user=sa
-jdbc.pass=sa
-
-hibernate.dialect=org.hibernate.dialect.H2Dialect
-hibernate.show_sql=true
-hibernate.hbm2ddl.auto=create-drop
diff --git a/spring-data-jpa/src/main/resources/persistence-multiple-db.properties b/spring-data-jpa/src/main/resources/persistence-multiple-db.properties
index ce1b6da9ff..53c6cecf8b 100644
--- a/spring-data-jpa/src/main/resources/persistence-multiple-db.properties
+++ b/spring-data-jpa/src/main/resources/persistence-multiple-db.properties
@@ -1,7 +1,7 @@
# jdbc.X
jdbc.driverClassName=org.h2.Driver
-user.jdbc.url=jdbc:h2:mem:spring_jpa_user;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS SPRING_JPA_USER
-product.jdbc.url=jdbc:h2:mem:spring_jpa_product;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS SPRING_JPA_PRODUCT
+user.jdbc.url=jdbc:h2:mem:spring_jpa_user;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS USERS
+product.jdbc.url=jdbc:h2:mem:spring_jpa_product;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS PRODUCTS
jdbc.user=sa
jdbc.pass=
diff --git a/spring-data-jpa/src/main/resources/persistence-student-h2.properties b/spring-data-jpa/src/main/resources/persistence-student-h2.properties
deleted file mode 100644
index 405e6ff109..0000000000
--- a/spring-data-jpa/src/main/resources/persistence-student-h2.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-# jdbc.X
-jdbc.driverClassName=org.h2.Driver
-jdbc.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
-jdbc.user=sa
-jdbc.pass=
-
-# hibernate.X
-hibernate.dialect=org.hibernate.dialect.H2Dialect
-hibernate.show_sql=true
-hibernate.hbm2ddl.auto=create-drop
-hibernate.cache.use_second_level_cache=false
-hibernate.cache.use_query_cache=false
\ No newline at end of file
diff --git a/spring-data-jpa/src/main/resources/persistence-h2.properties b/spring-data-jpa/src/main/resources/persistence.properties
similarity index 69%
rename from spring-data-jpa/src/main/resources/persistence-h2.properties
rename to spring-data-jpa/src/main/resources/persistence.properties
index 716a96fde3..5e83653401 100644
--- a/spring-data-jpa/src/main/resources/persistence-h2.properties
+++ b/spring-data-jpa/src/main/resources/persistence.properties
@@ -1,6 +1,6 @@
# jdbc.X
jdbc.driverClassName=org.h2.Driver
-jdbc.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
+jdbc.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS USERS
jdbc.user=sa
jdbc.pass=
@@ -10,4 +10,7 @@ hibernate.show_sql=true
hibernate.hbm2ddl.auto=create-drop
hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=true
-hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
\ No newline at end of file
+hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
+
+# envers.X
+envers.audit_table_suffix=_audit_log
\ No newline at end of file
diff --git a/spring-data-jpa/src/test/java/com/baeldung/repository/ArticleRepositoryIntegrationTest.java b/spring-data-jpa/src/test/java/com/baeldung/dao/repositories/ArticleRepositoryIntegrationTest.java
similarity index 85%
rename from spring-data-jpa/src/test/java/com/baeldung/repository/ArticleRepositoryIntegrationTest.java
rename to spring-data-jpa/src/test/java/com/baeldung/dao/repositories/ArticleRepositoryIntegrationTest.java
index dd1fe66a0d..093e744003 100644
--- a/spring-data-jpa/src/test/java/com/baeldung/repository/ArticleRepositoryIntegrationTest.java
+++ b/spring-data-jpa/src/test/java/com/baeldung/dao/repositories/ArticleRepositoryIntegrationTest.java
@@ -1,7 +1,9 @@
-package com.baeldung.repository;
+package com.baeldung.dao.repositories;
+import com.baeldung.config.PersistenceConfiguration;
+import com.baeldung.config.PersistenceProductConfiguration;
+import com.baeldung.config.PersistenceUserConfiguration;
import com.baeldung.domain.Article;
-import com.baeldung.repository.ArticleRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -16,7 +18,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@RunWith(SpringRunner.class)
-@DataJpaTest
+@DataJpaTest(excludeAutoConfiguration = {PersistenceConfiguration.class, PersistenceUserConfiguration.class, PersistenceProductConfiguration.class})
public class ArticleRepositoryIntegrationTest {
@Autowired
diff --git a/spring-data-jpa/src/test/java/org/baeldung/persistence/repository/ExtendedStudentRepositoryIntegrationTest.java b/spring-data-jpa/src/test/java/com/baeldung/dao/repositories/ExtendedStudentRepositoryIntegrationTest.java
similarity index 72%
rename from spring-data-jpa/src/test/java/org/baeldung/persistence/repository/ExtendedStudentRepositoryIntegrationTest.java
rename to spring-data-jpa/src/test/java/com/baeldung/dao/repositories/ExtendedStudentRepositoryIntegrationTest.java
index f3cf921632..b19a34df82 100644
--- a/spring-data-jpa/src/test/java/org/baeldung/persistence/repository/ExtendedStudentRepositoryIntegrationTest.java
+++ b/spring-data-jpa/src/test/java/com/baeldung/dao/repositories/ExtendedStudentRepositoryIntegrationTest.java
@@ -1,23 +1,21 @@
-package org.baeldung.persistence.repository;
+package com.baeldung.dao.repositories;
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.baeldung.config.StudentJPAH2Config;
-import org.baeldung.extended.persistence.dao.ExtendedStudentRepository;
-import org.baeldung.inmemory.persistence.model.Student;
+import com.baeldung.config.PersistenceConfiguration;
+import com.baeldung.domain.Student;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = { StudentJPAH2Config.class })
+import javax.annotation.Resource;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = {PersistenceConfiguration.class})
@DirtiesContext
public class ExtendedStudentRepositoryIntegrationTest {
@Resource
diff --git a/spring-data-jpa/src/test/java/com/baeldung/repository/JpaRepositoriesIntegrationTest.java b/spring-data-jpa/src/test/java/com/baeldung/dao/repositories/JpaRepositoriesIntegrationTest.java
similarity index 81%
rename from spring-data-jpa/src/test/java/com/baeldung/repository/JpaRepositoriesIntegrationTest.java
rename to spring-data-jpa/src/test/java/com/baeldung/dao/repositories/JpaRepositoriesIntegrationTest.java
index d8b7bc4a88..eaadb9e44a 100644
--- a/spring-data-jpa/src/test/java/com/baeldung/repository/JpaRepositoriesIntegrationTest.java
+++ b/spring-data-jpa/src/test/java/com/baeldung/dao/repositories/JpaRepositoriesIntegrationTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.repository;
+package com.baeldung.dao.repositories;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertFalse;
@@ -9,10 +9,19 @@ import static junit.framework.TestCase.assertTrue;
import java.util.List;
import java.util.Optional;
+import com.baeldung.config.PersistenceConfiguration;
+import com.baeldung.config.PersistenceProductConfiguration;
+import com.baeldung.config.PersistenceUserConfiguration;
+import com.baeldung.dao.repositories.ItemTypeRepository;
+import com.baeldung.dao.repositories.LocationRepository;
+import com.baeldung.dao.repositories.ReadOnlyLocationRepository;
+import com.baeldung.dao.repositories.StoreRepository;
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.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import com.baeldung.domain.Item;
@@ -21,7 +30,7 @@ import com.baeldung.domain.Location;
import com.baeldung.domain.Store;
@RunWith(SpringRunner.class)
-@DataJpaTest
+@DataJpaTest(excludeAutoConfiguration = {PersistenceConfiguration.class, PersistenceUserConfiguration.class, PersistenceProductConfiguration.class})
public class JpaRepositoriesIntegrationTest {
@Autowired
private LocationRepository locationRepository;
diff --git a/spring-data-jpa/src/test/java/org/baeldung/persistence/repository/UserRepositoryIntegrationTest.java b/spring-data-jpa/src/test/java/com/baeldung/dao/repositories/UserRepositoryIntegrationTest.java
similarity index 67%
rename from spring-data-jpa/src/test/java/org/baeldung/persistence/repository/UserRepositoryIntegrationTest.java
rename to spring-data-jpa/src/test/java/com/baeldung/dao/repositories/UserRepositoryIntegrationTest.java
index 9effd4717f..e29161394b 100644
--- a/spring-data-jpa/src/test/java/org/baeldung/persistence/repository/UserRepositoryIntegrationTest.java
+++ b/spring-data-jpa/src/test/java/com/baeldung/dao/repositories/UserRepositoryIntegrationTest.java
@@ -1,23 +1,25 @@
-package org.baeldung.persistence.repository;
+package com.baeldung.dao.repositories;
-import org.baeldung.config.PersistenceJPAConfigL2Cache;
-import org.baeldung.persistence.model.User;
+import com.baeldung.config.PersistenceConfiguration;
+import com.baeldung.dao.repositories.user.UserRepository;
+import com.baeldung.domain.user.User;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.JpaSort;
import org.springframework.data.mapping.PropertyReferenceException;
import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collection;
import java.util.List;
+import java.util.stream.Stream;
import static org.assertj.core.api.Assertions.assertThat;
@@ -25,32 +27,71 @@ import static org.assertj.core.api.Assertions.assertThat;
* Created by adam.
*/
@RunWith(SpringRunner.class)
-@ContextConfiguration(classes = PersistenceJPAConfigL2Cache.class)
+@SpringBootTest(classes = PersistenceConfiguration.class)
@DirtiesContext
public class UserRepositoryIntegrationTest {
private final String USER_NAME_ADAM = "Adam";
private final String USER_NAME_PETER = "Peter";
+
+ private final String USER_EMAIL = "email@example.com";
+ private final String USER_EMAIL2 = "email2@example.com";
+ private final String USER_EMAIL3 = "email3@example.com";
+ private final String USER_EMAIL4 = "email4@example.com";
+ private final String USER_EMAIL5 = "email5@example.com";
+ private final String USER_EMAIL6 = "email6@example.com";
+
private final Integer INACTIVE_STATUS = 0;
private final Integer ACTIVE_STATUS = 1;
@Autowired
private UserRepository userRepository;
+ @Test
+ @Transactional
+ public void givenUsersWithSameNameInDBWhenFindAllByNameThenReturnStreamOfUsers() {
+ User user1 = new User();
+ user1.setName(USER_NAME_ADAM);
+ user1.setEmail(USER_EMAIL);
+ userRepository.save(user1);
+
+ User user2 = new User();
+ user2.setName(USER_NAME_ADAM);
+ user2.setEmail(USER_EMAIL2);
+ userRepository.save(user2);
+
+ User user3 = new User();
+ user3.setName(USER_NAME_ADAM);
+ user3.setEmail(USER_EMAIL3);
+ userRepository.save(user3);
+
+ User user4 = new User();
+ user4.setName("SAMPLE");
+ user4.setEmail(USER_EMAIL4);
+ userRepository.save(user4);
+
+ try (Stream foundUsersStream = userRepository.findAllByName(USER_NAME_ADAM)) {
+ assertThat(foundUsersStream.count()).isEqualTo(3l);
+ }
+ }
+
@Test
public void givenUsersInDBWhenFindAllWithQueryAnnotationThenReturnCollectionWithActiveUsers() {
User user1 = new User();
user1.setName(USER_NAME_ADAM);
+ user1.setEmail(USER_EMAIL);
user1.setStatus(ACTIVE_STATUS);
userRepository.save(user1);
User user2 = new User();
user2.setName(USER_NAME_ADAM);
+ user2.setEmail(USER_EMAIL2);
user2.setStatus(ACTIVE_STATUS);
userRepository.save(user2);
User user3 = new User();
user3.setName(USER_NAME_ADAM);
+ user3.setEmail(USER_EMAIL3);
user3.setStatus(INACTIVE_STATUS);
userRepository.save(user3);
@@ -63,16 +104,19 @@ public class UserRepositoryIntegrationTest {
public void givenUsersInDBWhenFindAllWithQueryAnnotationNativeThenReturnCollectionWithActiveUsers() {
User user1 = new User();
user1.setName(USER_NAME_ADAM);
+ user1.setEmail(USER_EMAIL);
user1.setStatus(ACTIVE_STATUS);
userRepository.save(user1);
User user2 = new User();
user2.setName(USER_NAME_ADAM);
+ user2.setEmail(USER_EMAIL2);
user2.setStatus(ACTIVE_STATUS);
userRepository.save(user2);
User user3 = new User();
user3.setName(USER_NAME_ADAM);
+ user3.setEmail(USER_EMAIL3);
user3.setStatus(INACTIVE_STATUS);
userRepository.save(user3);
@@ -85,6 +129,7 @@ public class UserRepositoryIntegrationTest {
public void givenUserInDBWhenFindUserByStatusWithQueryAnnotationThenReturnActiveUser() {
User user = new User();
user.setName(USER_NAME_ADAM);
+ user.setEmail(USER_EMAIL);
user.setStatus(ACTIVE_STATUS);
userRepository.save(user);
@@ -97,6 +142,7 @@ public class UserRepositoryIntegrationTest {
public void givenUserInDBWhenFindUserByStatusWithQueryAnnotationNativeThenReturnActiveUser() {
User user = new User();
user.setName(USER_NAME_ADAM);
+ user.setEmail(USER_EMAIL);
user.setStatus(ACTIVE_STATUS);
userRepository.save(user);
@@ -109,11 +155,13 @@ public class UserRepositoryIntegrationTest {
public void givenUsersInDBWhenFindUserByStatusAndNameWithQueryAnnotationIndexedParamsThenReturnOneUser() {
User user = new User();
user.setName(USER_NAME_ADAM);
+ user.setEmail(USER_EMAIL);
user.setStatus(ACTIVE_STATUS);
userRepository.save(user);
User user2 = new User();
user2.setName(USER_NAME_PETER);
+ user2.setEmail(USER_EMAIL2);
user2.setStatus(ACTIVE_STATUS);
userRepository.save(user2);
@@ -126,11 +174,13 @@ public class UserRepositoryIntegrationTest {
public void givenUsersInDBWhenFindUserByStatusAndNameWithQueryAnnotationNamedParamsThenReturnOneUser() {
User user = new User();
user.setName(USER_NAME_ADAM);
+ user.setEmail(USER_EMAIL);
user.setStatus(ACTIVE_STATUS);
userRepository.save(user);
User user2 = new User();
user2.setName(USER_NAME_PETER);
+ user2.setEmail(USER_EMAIL2);
user2.setStatus(ACTIVE_STATUS);
userRepository.save(user2);
@@ -143,11 +193,13 @@ public class UserRepositoryIntegrationTest {
public void givenUsersInDBWhenFindUserByStatusAndNameWithQueryAnnotationNativeNamedParamsThenReturnOneUser() {
User user = new User();
user.setName(USER_NAME_ADAM);
+ user.setEmail(USER_EMAIL);
user.setStatus(ACTIVE_STATUS);
userRepository.save(user);
User user2 = new User();
user2.setName(USER_NAME_PETER);
+ user2.setEmail(USER_EMAIL2);
user2.setStatus(ACTIVE_STATUS);
userRepository.save(user2);
@@ -160,11 +212,13 @@ public class UserRepositoryIntegrationTest {
public void givenUsersInDBWhenFindUserByStatusAndNameWithQueryAnnotationNamedParamsCustomNamesThenReturnOneUser() {
User user = new User();
user.setName(USER_NAME_ADAM);
+ user.setEmail(USER_EMAIL);
user.setStatus(ACTIVE_STATUS);
userRepository.save(user);
User user2 = new User();
user2.setName(USER_NAME_PETER);
+ user2.setEmail(USER_EMAIL2);
user2.setStatus(ACTIVE_STATUS);
userRepository.save(user2);
@@ -177,6 +231,7 @@ public class UserRepositoryIntegrationTest {
public void givenUsersInDBWhenFindUserByNameLikeWithQueryAnnotationIndexedParamsThenReturnUser() {
User user = new User();
user.setName(USER_NAME_ADAM);
+ user.setEmail(USER_EMAIL);
user.setStatus(ACTIVE_STATUS);
userRepository.save(user);
@@ -189,6 +244,7 @@ public class UserRepositoryIntegrationTest {
public void givenUsersInDBWhenFindUserByNameLikeWithQueryAnnotationNamedParamsThenReturnUser() {
User user = new User();
user.setName(USER_NAME_ADAM);
+ user.setEmail(USER_EMAIL);
user.setStatus(ACTIVE_STATUS);
userRepository.save(user);
@@ -201,6 +257,7 @@ public class UserRepositoryIntegrationTest {
public void givenUsersInDBWhenFindUserByNameLikeWithQueryAnnotationNativeThenReturnUser() {
User user = new User();
user.setName(USER_NAME_ADAM);
+ user.setEmail(USER_EMAIL);
user.setStatus(ACTIVE_STATUS);
userRepository.save(user);
@@ -211,9 +268,9 @@ public class UserRepositoryIntegrationTest {
@Test
public void givenUsersInDBWhenFindAllWithSortByNameThenReturnUsersSorted() {
- userRepository.save(new User(USER_NAME_ADAM, ACTIVE_STATUS));
- userRepository.save(new User(USER_NAME_PETER, ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE", INACTIVE_STATUS));
+ userRepository.save(new User(USER_NAME_ADAM, USER_EMAIL, ACTIVE_STATUS));
+ userRepository.save(new User(USER_NAME_PETER, USER_EMAIL2, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE", USER_EMAIL3, INACTIVE_STATUS));
List usersSortByName = userRepository.findAll(new Sort(Sort.Direction.ASC, "name"));
@@ -224,9 +281,9 @@ public class UserRepositoryIntegrationTest {
@Test(expected = PropertyReferenceException.class)
public void givenUsersInDBWhenFindAllSortWithFunctionThenThrowException() {
- userRepository.save(new User(USER_NAME_ADAM, ACTIVE_STATUS));
- userRepository.save(new User(USER_NAME_PETER, ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE", INACTIVE_STATUS));
+ userRepository.save(new User(USER_NAME_ADAM, USER_EMAIL, ACTIVE_STATUS));
+ userRepository.save(new User(USER_NAME_PETER, USER_EMAIL2, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE", USER_EMAIL3, INACTIVE_STATUS));
userRepository.findAll(new Sort(Sort.Direction.ASC, "name"));
@@ -239,9 +296,9 @@ public class UserRepositoryIntegrationTest {
@Test
public void givenUsersInDBWhenFindAllSortWithFunctionQueryAnnotationJPQLThenReturnUsersSorted() {
- userRepository.save(new User(USER_NAME_ADAM, ACTIVE_STATUS));
- userRepository.save(new User(USER_NAME_PETER, ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE", INACTIVE_STATUS));
+ userRepository.save(new User(USER_NAME_ADAM, USER_EMAIL, ACTIVE_STATUS));
+ userRepository.save(new User(USER_NAME_PETER, USER_EMAIL2, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE", USER_EMAIL3, INACTIVE_STATUS));
userRepository.findAllUsers(new Sort("name"));
@@ -254,12 +311,12 @@ public class UserRepositoryIntegrationTest {
@Test
public void givenUsersInDBWhenFindAllWithPageRequestQueryAnnotationJPQLThenReturnPageOfUsers() {
- userRepository.save(new User(USER_NAME_ADAM, ACTIVE_STATUS));
- userRepository.save(new User(USER_NAME_PETER, ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE", INACTIVE_STATUS));
- userRepository.save(new User("SAMPLE1", INACTIVE_STATUS));
- userRepository.save(new User("SAMPLE2", INACTIVE_STATUS));
- userRepository.save(new User("SAMPLE3", INACTIVE_STATUS));
+ userRepository.save(new User(USER_NAME_ADAM, USER_EMAIL, ACTIVE_STATUS));
+ userRepository.save(new User(USER_NAME_PETER, USER_EMAIL2, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE", USER_EMAIL3, INACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE1", USER_EMAIL4, INACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE2", USER_EMAIL5, INACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE3", USER_EMAIL6, INACTIVE_STATUS));
Page usersPage = userRepository.findAllUsersWithPagination(new PageRequest(1, 3));
@@ -271,12 +328,12 @@ public class UserRepositoryIntegrationTest {
@Test
public void givenUsersInDBWhenFindAllWithPageRequestQueryAnnotationNativeThenReturnPageOfUsers() {
- userRepository.save(new User(USER_NAME_ADAM, ACTIVE_STATUS));
- userRepository.save(new User(USER_NAME_PETER, ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE", INACTIVE_STATUS));
- userRepository.save(new User("SAMPLE1", INACTIVE_STATUS));
- userRepository.save(new User("SAMPLE2", INACTIVE_STATUS));
- userRepository.save(new User("SAMPLE3", INACTIVE_STATUS));
+ userRepository.save(new User(USER_NAME_ADAM, USER_EMAIL, ACTIVE_STATUS));
+ userRepository.save(new User(USER_NAME_PETER, USER_EMAIL2, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE", USER_EMAIL3, INACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE1", USER_EMAIL4, INACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE2", USER_EMAIL5, INACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE3", USER_EMAIL6, INACTIVE_STATUS));
Page usersSortByNameLength = userRepository.findAllUsersWithPaginationNative(new PageRequest(1, 3));
@@ -289,10 +346,10 @@ public class UserRepositoryIntegrationTest {
@Test
@Transactional
public void givenUsersInDBWhenUpdateStatusForNameModifyingQueryAnnotationJPQLThenModifyMatchingUsers() {
- userRepository.save(new User("SAMPLE", ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE1", ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE", ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE3", ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE", USER_EMAIL, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE1", USER_EMAIL2, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE", USER_EMAIL3, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE3", USER_EMAIL4, ACTIVE_STATUS));
int updatedUsersSize = userRepository.updateUserSetStatusForName(INACTIVE_STATUS, "SAMPLE");
@@ -302,10 +359,10 @@ public class UserRepositoryIntegrationTest {
@Test
@Transactional
public void givenUsersInDBWhenUpdateStatusForNameModifyingQueryAnnotationNativeThenModifyMatchingUsers() {
- userRepository.save(new User("SAMPLE", ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE1", ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE", ACTIVE_STATUS));
- userRepository.save(new User("SAMPLE3", ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE", USER_EMAIL, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE1", USER_EMAIL2, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE", USER_EMAIL3, ACTIVE_STATUS));
+ userRepository.save(new User("SAMPLE3", USER_EMAIL4, ACTIVE_STATUS));
userRepository.flush();
int updatedUsersSize = userRepository.updateUserSetStatusForNameNative(INACTIVE_STATUS, "SAMPLE");
diff --git a/spring-data-jpa/src/test/java/org/baeldung/persistence/service/AbstractServicePersistenceIntegrationTest.java b/spring-data-jpa/src/test/java/com/baeldung/services/AbstractServicePersistenceIntegrationTest.java
similarity index 97%
rename from spring-data-jpa/src/test/java/org/baeldung/persistence/service/AbstractServicePersistenceIntegrationTest.java
rename to spring-data-jpa/src/test/java/com/baeldung/services/AbstractServicePersistenceIntegrationTest.java
index 0fdb3a19e1..acac66f2f7 100644
--- a/spring-data-jpa/src/test/java/org/baeldung/persistence/service/AbstractServicePersistenceIntegrationTest.java
+++ b/spring-data-jpa/src/test/java/com/baeldung/services/AbstractServicePersistenceIntegrationTest.java
@@ -1,8 +1,7 @@
-package org.baeldung.persistence.service;
+package com.baeldung.services;
-import org.baeldung.persistence.IOperations;
-import org.baeldung.persistence.model.Foo;
-import org.baeldung.util.IDUtil;
+import com.baeldung.domain.Foo;
+import com.baeldung.util.IDUtil;
import org.hamcrest.Matchers;
import org.junit.Ignore;
import org.junit.Test;
diff --git a/spring-data-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-data-jpa/src/test/java/com/baeldung/services/FooServicePersistenceIntegrationTest.java
similarity index 84%
rename from spring-data-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java
rename to spring-data-jpa/src/test/java/com/baeldung/services/FooServicePersistenceIntegrationTest.java
index 6385bc5509..fd17d033e1 100644
--- a/spring-data-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java
+++ b/spring-data-jpa/src/test/java/com/baeldung/services/FooServicePersistenceIntegrationTest.java
@@ -1,8 +1,7 @@
-package org.baeldung.persistence.service;
+package com.baeldung.services;
-import org.baeldung.persistence.IOperations;
-import org.baeldung.persistence.model.Foo;
-import org.baeldung.spring.PersistenceConfig;
+import com.baeldung.config.PersistenceConfiguration;
+import com.baeldung.domain.Foo;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -10,14 +9,14 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
import static org.junit.Assert.assertNotNull;
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = { PersistenceConfig.class }, loader = AnnotationConfigContextLoader.class)
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = {PersistenceConfiguration.class}, loader = AnnotationConfigContextLoader.class)
public class FooServicePersistenceIntegrationTest extends AbstractServicePersistenceIntegrationTest {
@Autowired
diff --git a/spring-data-jpa/src/test/java/org/baeldung/persistence/service/JpaMultipleDBIntegrationTest.java b/spring-data-jpa/src/test/java/com/baeldung/services/JpaMultipleDBIntegrationTest.java
similarity index 81%
rename from spring-data-jpa/src/test/java/org/baeldung/persistence/service/JpaMultipleDBIntegrationTest.java
rename to spring-data-jpa/src/test/java/com/baeldung/services/JpaMultipleDBIntegrationTest.java
index 64b082b14d..29b96ae597 100644
--- a/spring-data-jpa/src/test/java/org/baeldung/persistence/service/JpaMultipleDBIntegrationTest.java
+++ b/spring-data-jpa/src/test/java/com/baeldung/services/JpaMultipleDBIntegrationTest.java
@@ -1,13 +1,13 @@
-package org.baeldung.persistence.service;
+package com.baeldung.services;
-import org.baeldung.config.ProductConfig;
-import org.baeldung.config.UserConfig;
-import org.baeldung.persistence.multiple.dao.product.ProductRepository;
-import org.baeldung.persistence.multiple.dao.user.PossessionRepository;
-import org.baeldung.persistence.multiple.dao.user.UserRepository;
-import org.baeldung.persistence.multiple.model.product.Product;
-import org.baeldung.persistence.multiple.model.user.Possession;
-import org.baeldung.persistence.multiple.model.user.User;
+import com.baeldung.config.PersistenceProductConfiguration;
+import com.baeldung.config.PersistenceUserConfiguration;
+import com.baeldung.dao.repositories.user.PossessionRepository;
+import com.baeldung.dao.repositories.product.ProductRepository;
+import com.baeldung.dao.repositories.user.UserRepository;
+import com.baeldung.domain.user.Possession;
+import com.baeldung.domain.product.Product;
+import com.baeldung.domain.user.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +15,7 @@ import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.Transactional;
@@ -23,8 +24,8 @@ import java.util.Optional;
import static org.junit.Assert.*;
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = { UserConfig.class, ProductConfig.class })
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = {PersistenceUserConfiguration.class, PersistenceProductConfiguration.class})
@EnableTransactionManagement
@DirtiesContext
public class JpaMultipleDBIntegrationTest {
diff --git a/spring-data-jpa/src/test/java/com/baeldung/persistence/audit/SpringDataJPABarAuditIntegrationTest.java b/spring-data-jpa/src/test/java/com/baeldung/services/SpringDataJPABarAuditIntegrationTest.java
similarity index 86%
rename from spring-data-jpa/src/test/java/com/baeldung/persistence/audit/SpringDataJPABarAuditIntegrationTest.java
rename to spring-data-jpa/src/test/java/com/baeldung/services/SpringDataJPABarAuditIntegrationTest.java
index 4105773e3b..3c36f43192 100644
--- a/spring-data-jpa/src/test/java/com/baeldung/persistence/audit/SpringDataJPABarAuditIntegrationTest.java
+++ b/spring-data-jpa/src/test/java/com/baeldung/services/SpringDataJPABarAuditIntegrationTest.java
@@ -1,8 +1,7 @@
-package com.baeldung.persistence.audit;
+package com.baeldung.services;
-import com.baeldung.persistence.model.Bar;
-import com.baeldung.persistence.service.IBarService;
-import com.baeldung.spring.config.PersistenceTestConfig;
+import com.baeldung.config.PersistenceConfiguration;
+import com.baeldung.domain.Bar;
import org.junit.*;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
@@ -12,6 +11,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
import javax.persistence.EntityManager;
@@ -20,8 +20,8 @@ import javax.persistence.EntityManagerFactory;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = { PersistenceTestConfig.class }, loader = AnnotationConfigContextLoader.class)
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = { PersistenceConfiguration.class }, loader = AnnotationConfigContextLoader.class)
public class SpringDataJPABarAuditIntegrationTest {
private static Logger logger = LoggerFactory.getLogger(SpringDataJPABarAuditIntegrationTest.class);
diff --git a/spring-data-jpa/src/test/java/com/baeldung/spring/config/PersistenceTestConfig.java b/spring-data-jpa/src/test/java/com/baeldung/spring/config/PersistenceTestConfig.java
deleted file mode 100644
index 4e3ecd67f5..0000000000
--- a/spring-data-jpa/src/test/java/com/baeldung/spring/config/PersistenceTestConfig.java
+++ /dev/null
@@ -1,169 +0,0 @@
-package com.baeldung.spring.config;
-
-import com.baeldung.persistence.dao.IBarAuditableDao;
-import com.baeldung.persistence.dao.IBarDao;
-import com.baeldung.persistence.dao.IFooAuditableDao;
-import com.baeldung.persistence.dao.IFooDao;
-import com.baeldung.persistence.dao.impl.*;
-import com.baeldung.persistence.service.IBarAuditableService;
-import com.baeldung.persistence.service.IBarService;
-import com.baeldung.persistence.service.IFooAuditableService;
-import com.baeldung.persistence.service.IFooService;
-import com.baeldung.persistence.service.impl.*;
-import com.google.common.base.Preconditions;
-import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
-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.EnableJpaAuditing;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
-import org.springframework.orm.hibernate4.HibernateTransactionManager;
-import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
-import org.springframework.orm.jpa.JpaTransactionManager;
-import org.springframework.orm.jpa.JpaVendorAdapter;
-import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
-import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import javax.sql.DataSource;
-import java.util.Properties;
-
-@Configuration
-@EnableTransactionManagement
-@EnableJpaRepositories(basePackages = { "com.baeldung.persistence" }, transactionManagerRef = "jpaTransactionManager")
-@EnableJpaAuditing
-@PropertySource({ "classpath:persistence-h2.properties" })
-@ComponentScan({ "com.baeldung.persistence" })
-public class PersistenceTestConfig {
-
- @Autowired
- private Environment env;
-
- public PersistenceTestConfig() {
- super();
- }
-
- @Bean
- public LocalSessionFactoryBean sessionFactory() {
- final LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
- sessionFactory.setDataSource(restDataSource());
- sessionFactory.setPackagesToScan(new String[] { "com.baeldung.persistence.model" });
- sessionFactory.setHibernateProperties(hibernateProperties());
-
- return sessionFactory;
- }
-
- @Bean
- public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
- final LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
- emf.setDataSource(restDataSource());
- emf.setPackagesToScan(new String[] { "com.baeldung.persistence.model" });
-
- final JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
- emf.setJpaVendorAdapter(vendorAdapter);
- emf.setJpaProperties(hibernateProperties());
-
- return emf;
- }
-
- @Bean
- public DataSource restDataSource() {
- final BasicDataSource dataSource = new BasicDataSource();
- dataSource.setDriverClassName(Preconditions.checkNotNull(env.getProperty("jdbc.driverClassName")));
- dataSource.setUrl(Preconditions.checkNotNull(env.getProperty("jdbc.url")));
- dataSource.setUsername(Preconditions.checkNotNull(env.getProperty("jdbc.user")));
- dataSource.setPassword(Preconditions.checkNotNull(env.getProperty("jdbc.pass")));
-
- return dataSource;
- }
-
- @Bean
- public PlatformTransactionManager hibernateTransactionManager() {
- final HibernateTransactionManager transactionManager = new HibernateTransactionManager();
- transactionManager.setSessionFactory(sessionFactory().getObject());
- return transactionManager;
- }
-
- @Bean
- public PlatformTransactionManager jpaTransactionManager() {
- final JpaTransactionManager transactionManager = new JpaTransactionManager();
- transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
- return transactionManager;
- }
-
- @Bean
- public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
- return new PersistenceExceptionTranslationPostProcessor();
- }
-
- @Bean
- public IBarService barJpaService() {
- return new BarJpaService();
- }
-
- @Bean
- public IBarService barSpringDataJpaService() {
- return new BarSpringDataJpaService();
- }
-
- @Bean
- public IFooService fooHibernateService() {
- return new FooService();
- }
-
- @Bean
- public IBarAuditableService barHibernateAuditableService() {
- return new BarAuditableService();
- }
-
- @Bean
- public IFooAuditableService fooHibernateAuditableService() {
- return new FooAuditableService();
- }
-
- @Bean
- public IBarDao barJpaDao() {
- return new BarJpaDao();
- }
-
- @Bean
- public IBarDao barHibernateDao() {
- return new BarDao();
- }
-
- @Bean
- public IBarAuditableDao barHibernateAuditableDao() {
- return new BarAuditableDao();
- }
-
- @Bean
- public IFooDao fooHibernateDao() {
- return new FooDao();
- }
-
- @Bean
- public IFooAuditableDao fooHibernateAuditableDao() {
- return new FooAuditableDao();
- }
-
- private final Properties hibernateProperties() {
- final Properties hibernateProperties = new Properties();
- hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
- hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
-
- hibernateProperties.setProperty("hibernate.show_sql", "true");
- // hibernateProperties.setProperty("hibernate.format_sql", "true");
- // hibernateProperties.setProperty("hibernate.globally_quoted_identifiers", "true");
-
- // Envers properties
- hibernateProperties.setProperty("org.hibernate.envers.audit_table_suffix", env.getProperty("envers.audit_table_suffix"));
-
- return hibernateProperties;
- }
-
-}
\ No newline at end of file
diff --git a/spring-data-jpa/src/test/java/org/baeldung/util/IDUtil.java b/spring-data-jpa/src/test/java/com/baeldung/util/IDUtil.java
similarity index 96%
rename from spring-data-jpa/src/test/java/org/baeldung/util/IDUtil.java
rename to spring-data-jpa/src/test/java/com/baeldung/util/IDUtil.java
index 85ab623e5f..45e72e046d 100644
--- a/spring-data-jpa/src/test/java/org/baeldung/util/IDUtil.java
+++ b/spring-data-jpa/src/test/java/com/baeldung/util/IDUtil.java
@@ -1,4 +1,4 @@
-package org.baeldung.util;
+package com.baeldung.util;
import java.util.Random;
diff --git a/spring-data-jpa/src/test/java/org/baeldung/repository/UserRepositoryIntegrationTest.java b/spring-data-jpa/src/test/java/org/baeldung/repository/UserRepositoryIntegrationTest.java
deleted file mode 100644
index 4a7a59e799..0000000000
--- a/spring-data-jpa/src/test/java/org/baeldung/repository/UserRepositoryIntegrationTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.baeldung.repository;
-
-import org.baeldung.config.H2JpaConfig;
-import org.baeldung.persistence.model.User;
-import org.junit.After;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.stream.Stream;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-/**
- * Created by adam.
- */
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = H2JpaConfig.class)
-public class UserRepositoryIntegrationTest {
-
- private final String USER_NAME_ADAM = "Adam";
-
- @Autowired
- private UserRepository userRepository;
-
- @Test
- @Transactional
- public void givenUsersWithSameNameInDBWhenFindAllByNameThenReturnStreamOfUsers() {
- User user1 = new User();
- user1.setName(USER_NAME_ADAM);
- userRepository.save(user1);
-
- User user2 = new User();
- user2.setName(USER_NAME_ADAM);
- userRepository.save(user2);
-
- User user3 = new User();
- user3.setName(USER_NAME_ADAM);
- userRepository.save(user3);
-
- User user4 = new User();
- user4.setName("SAMPLE");
- userRepository.save(user4);
-
- try (Stream foundUsersStream = userRepository.findAllByName(USER_NAME_ADAM)) {
- assertThat(foundUsersStream.count()).isEqualTo(3l);
- }
- }
-
- @After
- public void cleanUp() {
- userRepository.deleteAll();
- }
-
-}