diff --git a/spring-data-rest/pom.xml b/spring-data-rest/pom.xml
index 1e1ec02e96..91b6d61878 100644
--- a/spring-data-rest/pom.xml
+++ b/spring-data-rest/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 1.5.1.RELEASE
+ 1.5.2.RELEASE
@@ -41,6 +41,26 @@
com.h2database
h2
+
+
org.springframework.boot
diff --git a/spring-data-rest/src/main/java/com/baeldung/config/DbConfig.java b/spring-data-rest/src/main/java/com/baeldung/config/DbConfig.java
new file mode 100644
index 0000000000..8d1f9de497
--- /dev/null
+++ b/spring-data-rest/src/main/java/com/baeldung/config/DbConfig.java
@@ -0,0 +1,61 @@
+package com.baeldung.config;
+
+import java.util.Properties;
+
+import javax.sql.DataSource;
+
+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.LocalContainerEntityManagerFactoryBean;
+import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
+
+//@Configuration
+@EnableJpaRepositories(basePackages = "com.baeldung.repositories")
+// @PropertySource("persistence-h2.properties")
+// @PropertySource("persistence-hsqldb.properties")
+// @PropertySource("persistence-derby.properties")
+public class DbConfig {
+
+ @Autowired
+ private Environment env;
+
+ @Bean
+ public DataSource dataSource() {
+ final DriverManagerDataSource dataSource = new DriverManagerDataSource();
+ dataSource.setDriverClassName(env.getProperty("driverClassName"));
+ dataSource.setUrl(env.getProperty("url"));
+ dataSource.setUsername(env.getProperty("user"));
+ dataSource.setPassword(env.getProperty("password"));
+ return dataSource;
+ }
+
+ @Bean
+ public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
+ final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
+ em.setDataSource(dataSource());
+ em.setPackagesToScan(new String[] { "com.baeldung.models" });
+ em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
+ em.setJpaProperties(additionalProperties());
+ return em;
+ }
+
+ final Properties additionalProperties() {
+ final Properties hibernateProperties = new Properties();
+ if (env.getProperty("hibernate.hbm2ddl.auto") != null) {
+ hibernateProperties.setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
+ }
+ if (env.getProperty("hibernate.dialect") != null) {
+ hibernateProperties.setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
+ }
+ if (env.getProperty("hibernate.show_sql") != null) {
+ hibernateProperties.setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
+ }
+ return hibernateProperties;
+ }
+
+}
diff --git a/spring-data-rest/src/main/java/com/baeldung/models/Address.java b/spring-data-rest/src/main/java/com/baeldung/models/Address.java
index 98cf5f0869..82e3783f3e 100644
--- a/spring-data-rest/src/main/java/com/baeldung/models/Address.java
+++ b/spring-data-rest/src/main/java/com/baeldung/models/Address.java
@@ -3,6 +3,7 @@ package com.baeldung.models;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@@ -10,7 +11,7 @@ import javax.persistence.OneToOne;
public class Address {
@Id
- @GeneratedValue
+ @GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Column(nullable = false)
diff --git a/spring-data-rest/src/main/java/com/baeldung/models/Author.java b/spring-data-rest/src/main/java/com/baeldung/models/Author.java
index 7025fa4ad3..cdd04cbdcf 100644
--- a/spring-data-rest/src/main/java/com/baeldung/models/Author.java
+++ b/spring-data-rest/src/main/java/com/baeldung/models/Author.java
@@ -6,6 +6,7 @@ import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
@@ -15,7 +16,7 @@ import javax.persistence.ManyToMany;
public class Author {
@Id
- @GeneratedValue
+ @GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Column(nullable = false)
diff --git a/spring-data-rest/src/main/java/com/baeldung/models/Book.java b/spring-data-rest/src/main/java/com/baeldung/models/Book.java
index 8f836a259a..06abfb8f4d 100644
--- a/spring-data-rest/src/main/java/com/baeldung/models/Book.java
+++ b/spring-data-rest/src/main/java/com/baeldung/models/Book.java
@@ -5,6 +5,7 @@ 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.JoinColumn;
import javax.persistence.ManyToMany;
@@ -14,7 +15,7 @@ import javax.persistence.ManyToOne;
public class Book {
@Id
- @GeneratedValue
+ @GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Column(nullable = false)
diff --git a/spring-data-rest/src/main/java/com/baeldung/models/Library.java b/spring-data-rest/src/main/java/com/baeldung/models/Library.java
index 61eead16ea..c27512d0e4 100644
--- a/spring-data-rest/src/main/java/com/baeldung/models/Library.java
+++ b/spring-data-rest/src/main/java/com/baeldung/models/Library.java
@@ -5,6 +5,7 @@ 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.JoinColumn;
import javax.persistence.OneToMany;
@@ -16,7 +17,7 @@ import org.springframework.data.rest.core.annotation.RestResource;
public class Library {
@Id
- @GeneratedValue
+ @GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
@Column
diff --git a/spring-data-rest/src/main/resources/persistence-derby.properties b/spring-data-rest/src/main/resources/persistence-derby.properties
new file mode 100644
index 0000000000..9bcd91c6f9
--- /dev/null
+++ b/spring-data-rest/src/main/resources/persistence-derby.properties
@@ -0,0 +1,8 @@
+driverClassName=org.apache.derby.jdbc.EmbeddedDriver
+url=jdbc:derby:memory:myD;create=true
+username=sa
+password=
+
+hibernate.dialect=org.hibernate.dialect.DerbyDialect
+hibernate.show_sql=true
+hibernate.hbm2ddl.auto=create-drop
\ No newline at end of file
diff --git a/spring-data-rest/src/main/resources/persistence-h2.properties b/spring-data-rest/src/main/resources/persistence-h2.properties
new file mode 100644
index 0000000000..d535f9dbe4
--- /dev/null
+++ b/spring-data-rest/src/main/resources/persistence-h2.properties
@@ -0,0 +1,8 @@
+driverClassName=org.h2.Driver
+url=jdbc:h2:mem:myDb;DB_CLOSE_DELAY=-1
+username=sa
+password=
+
+hibernate.dialect=org.hibernate.dialect.H2Dialect
+hibernate.show_sql=true
+hibernate.hbm2ddl.auto=create-drop
\ No newline at end of file
diff --git a/spring-data-rest/src/main/resources/persistence-hsqldb.properties b/spring-data-rest/src/main/resources/persistence-hsqldb.properties
new file mode 100644
index 0000000000..00464f1026
--- /dev/null
+++ b/spring-data-rest/src/main/resources/persistence-hsqldb.properties
@@ -0,0 +1,8 @@
+driverClassName=org.hsqldb.jdbc.JDBCDriver
+url=jdbc:hsqldb:mem:myDb
+username=sa
+password=
+
+hibernate.dialect=org.hibernate.dialect.HSQLDialect
+hibernate.show_sql=true
+hibernate.hbm2ddl.auto=create-drop
\ No newline at end of file
diff --git a/spring-data-rest/src/main/resources/persistence-sqlite.properties b/spring-data-rest/src/main/resources/persistence-sqlite.properties
new file mode 100644
index 0000000000..018c2cbaca
--- /dev/null
+++ b/spring-data-rest/src/main/resources/persistence-sqlite.properties
@@ -0,0 +1,4 @@
+driverClassName=org.sqlite.JDBC
+url=jdbc:sqlite:memory:myDb
+username=sa
+password=sa
\ No newline at end of file