diff --git a/pom.xml b/pom.xml
index a8efad57fa..eccf2d7ead 100644
--- a/pom.xml
+++ b/pom.xml
@@ -659,6 +659,7 @@
spring-boot-mvc-2
spring-boot-nashorn
spring-boot-parent
+ spring-boot-performance
spring-boot-property-exp
spring-boot-rest
@@ -1187,6 +1188,7 @@
spring-boot-mvc-2
spring-boot-nashorn
spring-boot-parent
+ spring-boot-performance
spring-boot-property-exp
spring-boot-rest
diff --git a/spring-boot-modules/pom.xml b/spring-boot-modules/pom.xml
index a3532dba2c..f71bc5b0be 100644
--- a/spring-boot-modules/pom.xml
+++ b/spring-boot-modules/pom.xml
@@ -22,7 +22,6 @@
spring-boot-keycloak
spring-boot-mvc-birt
- spring-boot-performance
spring-boot-properties
spring-boot-springdoc
spring-boot-testing
diff --git a/spring-boot-modules/spring-boot-performance/README.md b/spring-boot-performance/README.md
similarity index 100%
rename from spring-boot-modules/spring-boot-performance/README.md
rename to spring-boot-performance/README.md
diff --git a/spring-boot-modules/spring-boot-performance/pom.xml b/spring-boot-performance/pom.xml
similarity index 96%
rename from spring-boot-modules/spring-boot-performance/pom.xml
rename to spring-boot-performance/pom.xml
index 882763f0bc..7bf3885618 100644
--- a/spring-boot-modules/spring-boot-performance/pom.xml
+++ b/spring-boot-performance/pom.xml
@@ -11,7 +11,7 @@
com.baeldung
parent-boot-2
0.0.1-SNAPSHOT
- ../../parent-boot-2
+ ../parent-boot-2
diff --git a/spring-boot-modules/spring-boot-performance/src/main/java/com/baeldung/lazyinitialization/Application.java b/spring-boot-performance/src/main/java/com/baeldung/lazyinitialization/Application.java
similarity index 100%
rename from spring-boot-modules/spring-boot-performance/src/main/java/com/baeldung/lazyinitialization/Application.java
rename to spring-boot-performance/src/main/java/com/baeldung/lazyinitialization/Application.java
diff --git a/spring-boot-modules/spring-boot-performance/src/main/java/com/baeldung/lazyinitialization/services/Writer.java b/spring-boot-performance/src/main/java/com/baeldung/lazyinitialization/services/Writer.java
similarity index 100%
rename from spring-boot-modules/spring-boot-performance/src/main/java/com/baeldung/lazyinitialization/services/Writer.java
rename to spring-boot-performance/src/main/java/com/baeldung/lazyinitialization/services/Writer.java
diff --git a/spring-boot-modules/spring-boot-performance/src/main/resources/application.yml b/spring-boot-performance/src/main/resources/application.yml
similarity index 100%
rename from spring-boot-modules/spring-boot-performance/src/main/resources/application.yml
rename to spring-boot-performance/src/main/resources/application.yml
diff --git a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/models/Tweet.java b/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/models/Tweet.java
index b2e45009f6..54a96deaf3 100644
--- a/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/models/Tweet.java
+++ b/spring-security-modules/spring-security-mvc-boot/src/main/java/com/baeldung/models/Tweet.java
@@ -3,14 +3,17 @@ package com.baeldung.models;
import java.util.HashSet;
import java.util.Set;
+import javax.persistence.CollectionTable;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Table;
@Entity
+@Table(name = "Tweet")
public class Tweet {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@@ -18,7 +21,8 @@ public class Tweet {
private String tweet;
private String owner;
@ElementCollection(targetClass = String.class, fetch = FetchType.EAGER)
- private Set likes = new HashSet();
+ @CollectionTable(name = "Tweet_Likes")
+ private Set likes = new HashSet<>();
public long getId() {
return id;
diff --git a/spring-security-modules/spring-security-mvc-boot/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java b/spring-security-modules/spring-security-mvc-boot/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java
index 41f220df6f..b2def82c51 100644
--- a/spring-security-modules/spring-security-mvc-boot/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java
+++ b/spring-security-modules/spring-security-mvc-boot/src/test/java/com/baeldung/relationships/SpringDataWithSecurityIntegrationTest.java
@@ -1,29 +1,5 @@
package com.baeldung.relationships;
-import static org.springframework.util.Assert.isTrue;
-
-import java.util.Date;
-import java.util.List;
-
-import javax.servlet.ServletContext;
-
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.dao.InvalidDataAccessApiUsageException;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.test.context.web.WebAppConfiguration;
-import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
-
import com.baeldung.AppConfig;
import com.baeldung.data.repositories.TweetRepository;
import com.baeldung.data.repositories.UserRepository;
@@ -31,6 +7,30 @@ import com.baeldung.models.AppUser;
import com.baeldung.models.Tweet;
import com.baeldung.security.AppUserPrincipal;
import com.baeldung.util.DummyContentUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.InvalidDataAccessApiUsageException;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+import org.springframework.test.jdbc.JdbcTestUtils;
+import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
+
+import javax.servlet.ServletContext;
+import java.util.Date;
+import java.util.List;
+
+import static org.springframework.util.Assert.isTrue;
@RunWith(SpringRunner.class)
@WebAppConfiguration
@@ -54,10 +54,22 @@ public class SpringDataWithSecurityIntegrationTest {
tweetRepository.saveAll(DummyContentUtil.generateDummyTweets(appUsers));
}
- @AfterClass
- public static void tearDown() {
- tweetRepository.deleteAll();
- userRepository.deleteAll();
+ /**
+ * This is to ensure the tables are dropped in proper order.
+ * After the Spring Boot 2.2.2 upgrade, DDL statements generated automatically try to drop Tweet table first.
+ * As a result we get org.h2.jdbc.JdbcSQLSyntaxErrorException because Tweet_Likes table depends on Tweet.
+ *
+ * @see
+ * StackOverflow#59364212
+ *
+ * @see
+ * StackOverflow#59561551
+ *
+ */
+ @After
+ public void tearDown() {
+ JdbcTemplate jdbcTemplate = ctx.getBean(JdbcTemplate.class);
+ JdbcTestUtils.dropTables(jdbcTemplate, "Tweet_Likes", "Tweet");
}
@Test