diff --git a/spring-exceptions/pom.xml b/spring-exceptions/pom.xml
index 7a52560615..002ee4c258 100644
--- a/spring-exceptions/pom.xml
+++ b/spring-exceptions/pom.xml
@@ -87,6 +87,12 @@
guava
${guava.version}
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+ test
+
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause2DataContextWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause2DataContextWithJavaConfig.java
index e0e54e5abc..d38898d9cf 100644
--- a/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause2DataContextWithJavaConfig.java
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause2DataContextWithJavaConfig.java
@@ -1,10 +1,13 @@
package org.baeldung.ex.dataIntegrityviolationexception.spring;
+import org.baeldung.spring.config.PersistenceConfig;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
@Configuration
@ComponentScan("org.baeldung.ex.dataIntegrityviolationexception.cause2")
+@Import(PersistenceConfig.class)
public class Cause2DataContextWithJavaConfig {
public Cause2DataContextWithJavaConfig() {
diff --git a/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause3DataContextWithJavaConfig.java b/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause3DataContextWithJavaConfig.java
index 3eb8df39be..232435377a 100644
--- a/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause3DataContextWithJavaConfig.java
+++ b/spring-exceptions/src/main/java/org/baeldung/ex/dataIntegrityviolationexception/spring/Cause3DataContextWithJavaConfig.java
@@ -1,10 +1,13 @@
package org.baeldung.ex.dataIntegrityviolationexception.spring;
+import org.baeldung.spring.config.PersistenceConfig;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
@Configuration
@ComponentScan("org.baeldung.ex.dataIntegrityviolationexception.cause3")
+@Import(PersistenceConfig.class)
public class Cause3DataContextWithJavaConfig {
public Cause3DataContextWithJavaConfig() {
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause1DataIntegrityViolationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause1DataIntegrityViolationExceptionIntegrationTest.java
index ea94d5612c..e6cf53b68c 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause1DataIntegrityViolationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause1DataIntegrityViolationExceptionIntegrationTest.java
@@ -36,4 +36,16 @@ public class Cause1DataIntegrityViolationExceptionIntegrationTest {
childService.delete(childEntity);
}
+ @Test
+ public void whenChildIsDeletedAfterTheParent_thenNoExceptions() {
+ final Child childEntity = new Child();
+ childService.create(childEntity);
+
+ final Parent parentEntity = new Parent(childEntity);
+ service.create(parentEntity);
+
+ service.delete(parentEntity);
+ childService.delete(childEntity);
+ }
+
}
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause2DataIntegrityViolationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause2DataIntegrityViolationExceptionIntegrationTest.java
index 2eec55736d..909e7f95c8 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause2DataIntegrityViolationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause2DataIntegrityViolationExceptionIntegrationTest.java
@@ -1,8 +1,12 @@
package org.baeldung.ex.dataIntegrityviolationexception;
import org.baeldung.ex.dataIntegrityviolationexception.spring.Cause2DataContextWithJavaConfig;
+import org.baeldung.persistence.model.Foo;
+import org.baeldung.persistence.service.IFooService;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
@@ -11,9 +15,13 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@ContextConfiguration(classes = { Cause2DataContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
public class Cause2DataIntegrityViolationExceptionIntegrationTest {
- @Test
- public final void givenContextIsInitialized_thenNoException() {
- //
- }
+ @Autowired
+ private IFooService fooService;
+ // tests
+
+ @Test(expected = DataIntegrityViolationException.class)
+ public void whenInvalidEntityIsCreated_thenDataException() {
+ fooService.create(new Foo());
+ }
}
diff --git a/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause3DataIntegrityViolationExceptionIntegrationTest.java b/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause3DataIntegrityViolationExceptionIntegrationTest.java
index 5f4cf59f3a..6605a1cd28 100644
--- a/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause3DataIntegrityViolationExceptionIntegrationTest.java
+++ b/spring-exceptions/src/test/java/org/baeldung/ex/dataIntegrityviolationexception/Cause3DataIntegrityViolationExceptionIntegrationTest.java
@@ -1,8 +1,14 @@
package org.baeldung.ex.dataIntegrityviolationexception;
+import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
+
import org.baeldung.ex.dataIntegrityviolationexception.spring.Cause3DataContextWithJavaConfig;
+import org.baeldung.persistence.model.Foo;
+import org.baeldung.persistence.service.IFooService;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.AnnotationConfigContextLoader;
@@ -11,9 +17,14 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader;
@ContextConfiguration(classes = { Cause3DataContextWithJavaConfig.class }, loader = AnnotationConfigContextLoader.class)
public class Cause3DataIntegrityViolationExceptionIntegrationTest {
- @Test
- public final void givenContextIsInitialized_thenNoException() {
- //
+ @Autowired
+ private IFooService fooService;
+
+ // tests
+
+ @Test(expected = DataIntegrityViolationException.class)
+ public final void whenEntityWithLongNameIsCreated_thenDataException() {
+ fooService.create(new Foo(randomAlphabetic(2048)));
}
}