From a9d1be1031cd51b98a8acf98547d7ad2fb0b00ab Mon Sep 17 00:00:00 2001
From: Anastasios Ioannidis
<121166333+anastasiosioannidis@users.noreply.github.com>
Date: Fri, 17 Mar 2023 16:50:59 +0200
Subject: [PATCH] JAVA-17609 Spring-data-rest SQLite upgrade to Spring-Boot-3
(#13559)
---
persistence-modules/pom.xml | 3 +-
persistence-modules/spring-data-rest/pom.xml | 33 ++++----
.../baeldung/books/dialect/SQLiteDialect.java | 78 -------------------
.../dialect/SQLiteIdentityColumnSupport.java | 22 ------
.../com/baeldung/books/models/Address.java | 12 +--
.../com/baeldung/books/models/Author.java | 18 ++---
.../java/com/baeldung/books/models/Book.java | 18 ++---
.../com/baeldung/books/models/Library.java | 16 ++--
.../com/baeldung/books/models/Subject.java | 10 +--
.../resources/persistence-sqlite.properties | 2 +-
pom.xml | 2 +
11 files changed, 56 insertions(+), 158 deletions(-)
delete mode 100644 persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/dialect/SQLiteDialect.java
delete mode 100644 persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/dialect/SQLiteIdentityColumnSupport.java
diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml
index 9606da4594..d7ff51b487 100644
--- a/persistence-modules/pom.xml
+++ b/persistence-modules/pom.xml
@@ -98,7 +98,8 @@
spring-data-mongodb-reactive
spring-data-neo4j
spring-data-redis
- spring-data-rest
+
+
spring-data-rest-2
spring-data-rest-querydsl
spring-data-solr
diff --git a/persistence-modules/spring-data-rest/pom.xml b/persistence-modules/spring-data-rest/pom.xml
index f5601cb7ce..fa2cd033f5 100644
--- a/persistence-modules/spring-data-rest/pom.xml
+++ b/persistence-modules/spring-data-rest/pom.xml
@@ -11,9 +11,9 @@
com.baeldung
- parent-boot-2
+ parent-boot-3
0.0.1-SNAPSHOT
- ../../parent-boot-2
+ ../../parent-boot-3
@@ -42,6 +42,17 @@
spring-boot-starter-test
test
+
+ org.hibernate.orm
+ hibernate-community-dialects
+ ${hibernate-community-dialects.version}
+
+
+ io.rest-assured
+ rest-assured
+ 3.3.0
+ test
+
com.h2database
h2
@@ -64,23 +75,6 @@
${project.artifactId}
-
- com.mysema.maven
- maven-apt-plugin
- ${maven.version}
-
-
- generate-sources
-
- process
-
-
- target/generated-sources
- com.querydsl.apt.jpa.JPAAnnotationProcessor
-
-
-
-
org.springframework.boot
spring-boot-maven-plugin
@@ -91,6 +85,7 @@
com.baeldung.books.SpringDataRestApplication
1.0
+ 6.1.7.Final
\ No newline at end of file
diff --git a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/dialect/SQLiteDialect.java b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/dialect/SQLiteDialect.java
deleted file mode 100644
index 6e840eec43..0000000000
--- a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/dialect/SQLiteDialect.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.baeldung.books.dialect;
-
-import org.hibernate.dialect.Dialect;
-import org.hibernate.dialect.identity.IdentityColumnSupport;
-
-import java.sql.Types;
-
-public class SQLiteDialect extends Dialect {
-
- public SQLiteDialect() {
- registerColumnType(Types.BIT, "integer");
- registerColumnType(Types.TINYINT, "tinyint");
- registerColumnType(Types.SMALLINT, "smallint");
- registerColumnType(Types.INTEGER, "integer");
- registerColumnType(Types.BIGINT, "bigint");
- registerColumnType(Types.FLOAT, "float");
- registerColumnType(Types.REAL, "real");
- registerColumnType(Types.DOUBLE, "double");
- registerColumnType(Types.NUMERIC, "numeric");
- registerColumnType(Types.DECIMAL, "decimal");
- registerColumnType(Types.CHAR, "char");
- registerColumnType(Types.VARCHAR, "varchar");
- registerColumnType(Types.LONGVARCHAR, "longvarchar");
- registerColumnType(Types.DATE, "date");
- registerColumnType(Types.TIME, "time");
- registerColumnType(Types.TIMESTAMP, "timestamp");
- registerColumnType(Types.BINARY, "blob");
- registerColumnType(Types.VARBINARY, "blob");
- registerColumnType(Types.LONGVARBINARY, "blob");
- registerColumnType(Types.BLOB, "blob");
- registerColumnType(Types.CLOB, "clob");
- registerColumnType(Types.BOOLEAN, "integer");
- }
-
- public IdentityColumnSupport getIdentityColumnSupport() {
- return new SQLiteIdentityColumnSupport();
- }
-
- public boolean hasAlterTable() {
- return false;
- }
-
- public boolean dropConstraints() {
- return false;
- }
-
- public String getDropForeignKeyString() {
- return "";
- }
-
- public String getAddForeignKeyConstraintString(String constraintName, String[] foreignKey, String referencedTable, String[] primaryKey, boolean referencesPrimaryKey) {
- return "";
- }
-
- public String getAddPrimaryKeyConstraintString(String constraintName) {
- return "";
- }
-
- public String getForUpdateString() {
- return "";
- }
-
- public String getAddColumnString() {
- return "add column";
- }
-
- public boolean supportsOuterJoinForUpdate() {
- return false;
- }
-
- public boolean supportsIfExistsBeforeTableName() {
- return true;
- }
-
- public boolean supportsCascadeDelete() {
- return false;
- }
-}
diff --git a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/dialect/SQLiteIdentityColumnSupport.java b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/dialect/SQLiteIdentityColumnSupport.java
deleted file mode 100644
index 682d82c6f1..0000000000
--- a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/dialect/SQLiteIdentityColumnSupport.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.baeldung.books.dialect;
-
-import org.hibernate.MappingException;
-import org.hibernate.dialect.identity.IdentityColumnSupportImpl;
-
-public class SQLiteIdentityColumnSupport extends IdentityColumnSupportImpl {
-
- @Override
- public boolean supportsIdentityColumns() {
- return true;
- }
-
- @Override
- public String getIdentitySelectString(String table, String column, int type) throws MappingException {
- return "select last_insert_rowid()";
- }
-
- @Override
- public String getIdentityColumnString(int type) throws MappingException {
- return "integer";
- }
-}
diff --git a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Address.java b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Address.java
index 3c36db0f3c..2627c21615 100644
--- a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Address.java
+++ b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Address.java
@@ -1,11 +1,11 @@
package com.baeldung.books.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;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.OneToOne;
@Entity
public class Address {
diff --git a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Author.java b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Author.java
index aec2e62ebf..385113d800 100644
--- a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Author.java
+++ b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Author.java
@@ -2,15 +2,15 @@ package com.baeldung.books.models;
import java.util.List;
-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;
-import javax.persistence.ManyToMany;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinTable;
+import jakarta.persistence.ManyToMany;
@Entity
public class Author {
diff --git a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Book.java b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Book.java
index 7451b04b3b..ea3fb325c1 100644
--- a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Book.java
+++ b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Book.java
@@ -2,15 +2,15 @@ package com.baeldung.books.models;
import java.util.List;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToMany;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.ManyToOne;
@Entity
public class Book {
diff --git a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Library.java b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Library.java
index 5f95169a9b..28a54dbd33 100644
--- a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Library.java
+++ b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Library.java
@@ -2,14 +2,14 @@ package com.baeldung.books.models;
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;
-import javax.persistence.OneToOne;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.OneToOne;
import org.springframework.data.rest.core.annotation.RestResource;
diff --git a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Subject.java b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Subject.java
index 11a4425fdd..28d16f5054 100644
--- a/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Subject.java
+++ b/persistence-modules/spring-data-rest/src/main/java/com/baeldung/books/models/Subject.java
@@ -1,10 +1,10 @@
package com.baeldung.books.models;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
@Entity
public class Subject {
diff --git a/persistence-modules/spring-data-rest/src/main/resources/persistence-sqlite.properties b/persistence-modules/spring-data-rest/src/main/resources/persistence-sqlite.properties
index b6b5f4e4d6..e570322a82 100644
--- a/persistence-modules/spring-data-rest/src/main/resources/persistence-sqlite.properties
+++ b/persistence-modules/spring-data-rest/src/main/resources/persistence-sqlite.properties
@@ -2,6 +2,6 @@ driverClassName=org.sqlite.JDBC
url=jdbc:sqlite:memory:myDb?cache=shared
username=sa
password=sa
-hibernate.dialect=com.baeldung.dialect.SQLiteDialect
+spring.jpa.database-platform=org.hibernate.community.dialect.SQLiteDialect
hibernate.hbm2ddl.auto=create-drop
hibernate.show_sql=true
diff --git a/pom.xml b/pom.xml
index 6ef6abd805..b349c49f9e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -904,6 +904,7 @@
spring-swagger-codegen/custom-validations-opeanpi-codegen
testing-modules/testing-assertions
persistence-modules/fauna
+ persistence-modules/spring-data-rest
rule-engines-modules
@@ -1162,6 +1163,7 @@
spring-swagger-codegen/custom-validations-opeanpi-codegen
testing-modules/testing-assertions
persistence-modules/fauna
+ persistence-modules/spring-data-rest
rule-engines-modules